c - 解释 void (*signal(int signo, void *(func)(int)))(int)

标签 c linux function signals

请解释此类型签名:void (*signal(int signo, void *(func)(int)))(int)

最佳答案

当 typedef 用于传递的函数指针时,signal 函数的类型签名更加清晰:

typedef void (*sighandler_t)(int);
sighandler_t signal(int signo, sighandler_t func);

sighandler_t 是一个指向函数的指针,该函数采用 int 参数并且不返回任何内容。 signal 函数将这样一个函数指针作为它的第二个参数。它还返回该类型的函数指针。

关于c - 解释 void (*signal(int signo, void *(func)(int)))(int),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2270713/

相关文章:

mysql - 使用 C 连接器将选择和多个插入作为事务执行?

linux - 有效的 authorized_keys 文件?

linux - 无法强制 Git 添加 linux/dev 设备

r - 将函数应用于序列

c - Kernighan 和 Ritchie 练习 2-2 调试?

c - 将结构从 x->y 转换为 x.y 并删除 malloc 时出现 Valgrind 错误。艰难地学习 C(前 16)- 额外学分

c - 为什么这个 printList 函数不能用于 C 中的链接列表

linux - 如何使用shell解析命令的输出

c++ - 为什么 C++ 允许但忽略将 const 应用于函数类型?

Javascript 一键实现两个功能