今天遇到一个很奇怪的函数使用方法
fun(参数)()
有没有很奇怪这是怎么调用的,我也很好奇啊,可是在网上搜不到相关的知识,于是请教了大佬,大佬举的例子是a++--,请分析下这是怎么运行的,这个容易理解,先a++(值不会先增加),再执行—操作。所以这个函数也差不多,先运行fun函数,但是fun函数返回值是函数指针,后面的括号就是和返回的函数结合运行的。
#include<stdio.h>
typedef int (*TaskFunState)(void);
int HelloWorld(void)
{
printf("Hello World!!\n");
return 66;
};
TaskFunState FunTwoBracker(int eState)
{
return HelloWorld;
}
int main(void)
{
int iTempVal = 0;
iTempVal = FunTwoBracker(5)();
printf("iTempVal %d\n",iTempVal);
return 0;
}
运行结果: