我正在学习"include/asm-x86/types.h",我对\__signed__的含义有点困惑。
当我用谷歌搜索这个关键词时,我得不到任何有用的信息。为什么不直接使用signed而不是\__signed__呢,这有什么特殊的意义吗?
发布于 2013-08-13 18:35:49
这是为了向后兼容,当旧的编译器不能识别signed关键字时,就会使用这样的替代方法。
发布于 2013-08-13 18:37:00
__signed__和signed的区别在于名称空间的不同。signed名称仅在__KERNEL__中可用,在外部不可用。
正如您提到的header file顶部所述:
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/对于不带下划线的signed名称,它说明:
/*
* These aren't exported outside the kernel to avoid name space clashes
*/发布于 2013-08-13 18:38:16
__signed__还用于使用gcc -traditional进行编译,其中不能识别关键字signed。
不要使用c __signed__进行谷歌搜索,因为在搜索中会跳过像__这样的特殊字符,使用c "__signed__"进行文字搜索,您将获得有用的信息。
https://stackoverflow.com/questions/18206770
复制相似问题