function pointer demo in C language

本文通过实例展示了C语言中函数指针的应用,包括如何定义、赋值及调用函数指针,并通过多种方法操作函数指针,实现灵活的函数调用。
#include <stdio.h>

int doAdd(int a, int b)   { return a + b; }
int doMinus(int a, int b) { return a - b; }
int test(int a,int b,int (*suck)(int,int)) {return suck(a,b);}

int main(void) {

int (*my_func_ptr)(int, int);

my_func_ptr = doAdd;
printf("function pointer to doAdd => %d\n", (*my_func_ptr)(5, 3)); 
my_func_ptr = doMinus;
printf("function pointer to doMinus => %d\n", (*my_func_ptr)(5, 3)); 
//other method claim function pointer
   typedef int (*qq)(int,int);
   qq funcArray[1];
   funcArray[0] = doAdd;
   funcArray[1] = &doMinus;
   printf("%d\n" ,funcArray[0](5,3));
   printf("%d\n" ,funcArray[1](5,3));
   ////////////////////
   int i=0;
   while(i<2) { printf("%d\n" ,funcArray[i](5,3)); i++;};
   ////////////////////
   printf("%d\n",test(5,3,&doAdd));
   printf("%d\n",test(5,3,doMinus));
   return 0;
}
ref:http://caterpillar.onlyfun.net/Gossip/CGossip/FunctionPointer.html
http://www.newty.de/fpt/index.html

转载于:https://www.cnblogs.com/bittorrent/archive/2012/10/19/2730368.html

<script language="javascript"> //树节点相关控制 // <!-- function hideChildren(node) { var level = parseInt(node.getAttribute("level")); var nextNode = node.nextSibling; while (nextNode != null && parseInt(nextNode.getAttribute("level")) > level) { nextNode.style.display = "none"; nextNode = nextNode.nextSibling; if (nextNode.nodeType === 3) { break } } } function showChildren(node) { var level = parseInt(node.getAttribute("level")); var id = node.getAttribute("id"); var nextNode = node.nextSibling; while (nextNode != null && parseInt(nextNode.getAttribute("level")) > level) { if (nextNode.getAttribute("pid") == id) { if (node.getAttribute("expand") == "1") { nextNode.style.display = ""; showChildren(nextNode); } else { nextNode.style.display = "none"; } } nextNode = nextNode.nextSibling; if (nextNode.nodeType === 3) { break } } } function setExpand(sender) { var curNode = sender.parentNode.parentNode; if (curNode.getAttribute("expand") == "1") { curNode.setAttribute("expand", "0"); sender.src = "./images/maximize.gif"; hideChildren(curNode); } else { curNode.setAttribute("expand", "1"); sender.src = "./images/minimize.gif"; showChildren(curNode); } } function imgClick() { const imgList=$("#GridView2").find("img") imgList.each(function(){ $(this).trigger("click") } ) } </script>点击按钮显示其他页面之后,返回 function imgClick() { const imgList=$("#GridView2").find("img") imgList.each(function(){ $(this).trigger("click") } ) }折叠展开,图片消失
最新发布
09-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值