第一眼看到这样一个题目的我,心想除了如下的直接调用还能怎么调用呢?
1 void fun(void) 2 { 3 ...... 4 //你的代码 5 ..... 6 } 7 int main(void) 8 { 9 ....... 10 fun(); 11 ..... 12 }
可是高深的C会这么简单吗?当然不可能,随即查阅(百度)一下发现还有如下两种方式:
函数指针
void fun(void) { printf("OK! "); } int main(void) { void (*pfun)(); // pfun=fun; (*pfun)(); // return 0; }
函数形参的方式
void fun(void) { printf("OK! "); }
void CallFun(void (*pfun)()) { (*pfun)(); // } int main(void) { CallFun(fun); // }
总结
C语言中函数的调用主要有如下三种方法,直接调用,函数指针调用,函数指针传递调用其中后两种本质一样,但在有无返回值时还稍有差别。因为本质上函数也是最终的在机器看来都是一个地址下存放的机器指令。在C语言中进行函数定义的声明是为了C语言和调用过程和结果返回的格式约定相关的。