当我在Eclipse中打开 size_t 的声明时,我从GCC获得了 stddef.h 的行: typedef __SIZE_TYPE__ size_t;
size_t
stddef.h
typedef __SIZE_TYPE__ size_t;
我知道 __SIZE_TYPE__ 没有在任何头文件中定义,但是编译器知道 .
__SIZE_TYPE__
但是,Eclipse CDT如何理解 __SIZE_TYPE__ 和 size_t 是整数类型,所以它可以进行代码分析等?它是否内置于CDT中?
我终于弄明白了 .
__SIZE_TYPE__ 可以在项目属性 - > C / C常规 - >预处理器包含路径,宏等 - >条目 - > CDT GCC内置编译器设置中找到 __SIZE_TYPE__ = unsigned int.
__SIZE_TYPE__ = unsigned int.
查看提供程序选项卡,CDT通过运行 ${COMMAND} -E -P -v -dD ${INPUTS} 从GCC中提取列表,其中 ${COMMAND} 是gcc而 ${INPUTS} 是空C或C文件 .
${COMMAND} -E -P -v -dD ${INPUTS}
${COMMAND}
${INPUTS}
-E 仅预处理 -P 无行标记 -v verbose -dD 转储所有宏定义 .
-E
-P
-v
-dD
GCC输出各种内部定义,包括 #define __SIZE_TYPE__ unsigned int
#define __SIZE_TYPE__ unsigned int
Eclipse不理解 __SIZE_TYPE__ - 那是GCC的事情 . 例如:
http://gcc.gnu.org/onlinedocs/gccint/Type-Layout.html
http://gcc.gnu.org/onlinedocs/gcc-3.1/gccint/Driver.html
这是一个更完整的解释:
Where is c++ size_t defined in linux
2 回答
我终于弄明白了 .
__SIZE_TYPE__
可以在项目属性 - > C / C常规 - >预处理器包含路径,宏等 - >条目 - > CDT GCC内置编译器设置中找到__SIZE_TYPE__ = unsigned int.
查看提供程序选项卡,CDT通过运行
${COMMAND} -E -P -v -dD ${INPUTS}
从GCC中提取列表,其中${COMMAND}
是gcc而${INPUTS}
是空C或C文件 .-E
仅预处理-P
无行标记-v
verbose-dD
转储所有宏定义 .GCC输出各种内部定义,包括
#define __SIZE_TYPE__ unsigned int
Eclipse不理解
__SIZE_TYPE__
- 那是GCC的事情 . 例如:http://gcc.gnu.org/onlinedocs/gccint/Type-Layout.html
http://gcc.gnu.org/onlinedocs/gcc-3.1/gccint/Driver.html
这是一个更完整的解释:
Where is c++ size_t defined in linux