话说这段代码什么意思
資深大佬 : Vibra 1
void(*signal(int, void (*)(int)))(int);
里面的部分是接收一个 int 和 一个函数指针, 这个是清楚的, 第一个 void 跟括号是什么意思…为什么最后还有一个 int 看不懂了….
大佬有話說 (10)
void(*signal(int, void (*)(int)))(int);
里面的部分是接收一个 int 和 一个函数指针, 这个是清楚的, 第一个 void 跟括号是什么意思…为什么最后还有一个 int 看不懂了….
这两个能看懂,,,然后接下来 *signal 是什么意思?
我理解的是, signal 的返回值是一个指针,,,就是 signal 前面的*,,但是*没有声明类型…
还有,,,给指针赋类型, 不应该是括号写前面吗? 比如 int *a = (int *) malloc(sizeof(int)); 这样…
“`c
void t(int i) {
printf(“%dn”, i);
}
void(*signal(int i, void(*f)(int)))(int i) {
f(i);
return &t;
}
int main() {
signal(0, &t)(1);
return 0;
}
“`