fuck (int *fun(int)); 为什么这玩意能通过编译?解决思路
fuck (int *fun(int)); 为什么这玩意能通过编译?fuck (int *fun(int));为什么这玩意能通过编译?[解决办法]
fuck (int *fun(int)); 为什么这玩意能通过编译?
fuck (int *fun(int));
为什么这玩意能通过编译?
[解决办法]
C/C++ code[User:root Time:15:19:27 Path:/home/liangdong/c]$ ./output 5[User:root Time:15:19:28 Path:/home/liangdong/c]$ cat src/main.c #include <stdio.h>#include <stdlib.h>#include <string.h>void fuck(int* fun(int)) { fun(5);}int* function(int n) { printf("%d\n", n); return NULL;}int main(int argc, char* const argv[]) { fuck(function); return 0;}
[解决办法]
[解决办法]
你只要理解C/C++的类型派生方式是递归就能理解如何阅读复杂的派生类型了。
http://blog.csdn.net/supermegaboy/article/details/4854965
[解决办法]
void ( *signal( int sig, void (* handler)( int ))) ( int );
这个比较简单了 在解释语法的时候 先抓住优先级;
(1)这是一个函数,函数名字为 signal
(2)signal参数有两个 第一个 参数 为 int sig, 第二个参数为一个函数指针handler,函数指针类型为 void (int)
(3)这个函数的返回值 为一个指针,通过发现是一个函数指针,类型为 void (int)
PS:你可以看下C专家编程里面说的比较清楚,另外自己写代码的时候最好先用typedef定义好类型,不然看起来太乱。
[解决办法]