c++ - 无法理解 C/Linux 中信号函数的声明
问题描述
首先,我是 Linux 上的 C++ 新手(在将近 20 年后接触 C/C++/Linux),所以为自己的幼稚道歉。
我在这里看到了程序signal
源代码中函数的使用,并继续寻找它是如何工作的。我理解这是如何工作的,但我无法理解的是信号函数的声明。showkey
该页面说该signal
功能定义为
void (*signal(int sig, void (*func)(int)))(int)
在这,我明白了
- 返回类型是
void
- 第一个参数是
int
类型 - 第二个参数是一个指向函数的指针,它接受一个
int
参数并返回一个void
我无法理解的是:
- 在 void 之后和星 * 之前的括号(在一开始)为什么要对括号进行排序?
- 为什么
signal
方法名称显示为指针 (*signal(...)? - 到底是什么
(int)
意思?
谁能帮我理解这一点。如果有任何对这种高级 C 指针使用的参考,这对我的整体理解和学习将大有裨益。
TIA。
解决方案
推荐阅读
- javascript - 如何阻止函数在使用 Jquery 制作的计算器中运行
- assembly - x86 中调试寄存器的使用
- c# - 如果条件在 Jquery 中不起作用,为什么要使用 ViewBag?
- proxy - java webstart 应用程序 (jnlp) 的 SOCKs 代理设置
- php - 如何解决与 Jenssegers/Mongodb 相关的 Lumen 错误?
- node.js - Heroku 部署错误不允许 Discord.js 机器人在线出现 [NPM_CONFIG_LOGLEVEL=error]
- swift - AVAssetExportSession.exportAsynchronously 没有取得进展
- node.js - nodejs 编写一个程序,在指定时间执行对 HTTP 端点的调用
- python - 什么是仅读取文本文件中的完整单词的python代码(词法分析仅检测整个单词)?
- html - 当高度增加时,如何使文本垂直居中?