首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

fuck (int *fun(int)); 为什么这玩意能通过编译?解决思路

2012-06-03 
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;}
[解决办法]
探讨

我的意思是前面没有void

[解决办法]
你只要理解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定义好类型,不然看起来太乱。
[解决办法]
探讨

int (*Register (int (*pf)(int)))(int)
我是被这条语句弄傻的,看不明白;
能再解释一下这条语句么?

热点排行