Unix API 定义的结构体中的许多字段都有前缀,例如sa_
在sa_handler
.struct sigaction
为什么会这样呢?为什么不sa_handler
叫 just handler
?
答案1
这可以追溯到很久以前,一直到第一个 C 版本。他们没有单独的结构成员符号表,名称被添加到全局符号表中。造成明显令人讨厌的全局名称空间污染。解决方法与您今天在枚举上使用的方法相同,在它们前面添加几个字母以避免名称冲突。
Unix API 定义的结构体中的许多字段都有前缀,例如sa_
在sa_handler
.struct sigaction
为什么会这样呢?为什么不sa_handler
叫 just handler
?
这可以追溯到很久以前,一直到第一个 C 版本。他们没有单独的结构成员符号表,名称被添加到全局符号表中。造成明显令人讨厌的全局名称空间污染。解决方法与您今天在枚举上使用的方法相同,在它们前面添加几个字母以避免名称冲突。