gcc中用于预编译的宏(如__cplusplus , __func__ , __FILE__ , __LINE__ 等)
2012-08-14 11:35
246 查看
官方查看地址:http://gcc.gnu.org/onlinedocs/cpp/Predefined-Macros.html
In C++, there is a fourth category, the named operators. They act like predefined macros, but you cannot undefine them.
编译器预定义的宏分为以下四种:
Standard Predefined Macros 标准预定义的宏:__func__ , __FILE__ 之类的就在这类,这类宏在VC 等编译器当中也会有的
Common Predefined Macros 公用预定义宏
System-specific Predefined Macros 特定系统的预定义宏
C++ Named Operators C++ 命名的操作
gcc中的预编译宏
* 预定义的宏
* __NASE_FILE__ 源文件的完整路径名,和 __FILE__ 不同,被引用的文件仍然是原来文件名
* __CHAR_UNSIGNED__ 用于指定该机器上 char 是无符号类型
* __cplusplus 使用 C++ 编译器编译
* __DATE__ 编译时的日期
* __FILE__ 编译文件名
* __func__ 同 __FUNCTION__
* __GNUC__ GCC 的主版本号
* __GNUC_MINOR__ GCC 的次版本号
* __GNUC_PATCHLEVEL__ GCC 的修订号
* __GNUG__ 由 C++ 编译程序定义
* __INCLUDE_LEVEL__ 指 #include 的层次
* __LINE__ 当前行号
* __NO_INLINE__ 不允许 inline
* __OPTIMIZE__ 打开了优化选项
* __OPTIMIZE_SIZE__ 打开了对编译出文件尺寸的优化
* __STDC__ 表示该程序符合 ansi C 标准
* __STDC_HOSTED__ 表示宿主具有标准 C 的环境
* __STDC_VERSION__ 标准 C 制定时间
* __TIME__ 编译时系统时间
__VERSION__ GCC 版本号
* 预定义的宏
* __NASE_FILE__ 源文件的完整路径名,和 __FILE__ 不同,被引用的文件仍然是原来文件名
* __CHAR_UNSIGNED__ 用于指定该机器上 char 是无符号类型
* __cplusplus 使用 C++ 编译器编译
* __DATE__ 编译时的日期
* __FILE__ 编译文件名
* __func__ 同 __FUNCTION__
* __GNUC__ GCC 的主版本号
* __GNUC_MINOR__ GCC 的次版本号
* __GNUC_PATCHLEVEL__ GCC 的修订号
* __GNUG__ 由 C++ 编译程序定义
* __INCLUDE_LEVEL__ 指 #include 的层次
* __LINE__ 当前行号
* __NO_INLINE__ 不允许 inline
* __OPTIMIZE__ 打开了优化选项
* __OPTIMIZE_SIZE__ 打开了对编译出文件尺寸的优化
* __STDC__ 表示该程序符合 ansi C 标准
* __STDC_HOSTED__ 表示宿主具有标准 C 的环境
* __STDC_VERSION__ 标准 C 制定时间
* __TIME__ 编译时系统时间
__VERSION__ GCC 版本号
* 预定义的宏
* __NASE_FILE__ 源文件的完整路径名,和 __FILE__ 不同,被引用的文件仍然是原来文件名
* __CHAR_UNSIGNED__ 用于指定该机器上 char 是无符号类型
* __cplusplus 使用 C++ 编译器编译
* __DATE__ 编译时的日期
* __FILE__ 编译文件名
* __func__ 同 __FUNCTION__
* __GNUC__ GCC 的主版本号
* __GNUC_MINOR__ GCC 的次版本号
* __GNUC_PATCHLEVEL__ GCC 的修订号
* __GNUG__ 由 C++ 编译程序定义
* __INCLUDE_LEVEL__ 指 #include 的层次
* __LINE__ 当前行号
* __NO_INLINE__ 不允许 inline
* __OPTIMIZE__ 打开了优化选项
* __OPTIMIZE_SIZE__ 打开了对编译出文件尺寸的优化
* __STDC__ 表示该程序符合 ansi C 标准
* __STDC_HOSTED__ 表示宿主具有标准 C 的环境
* __STDC_VERSION__ 标准 C 制定时间
* __TIME__ 编译时系统时间
__VERSION__ GCC 版本号
3.7 Predefined Macros
Several object-like macros are predefined; you use them without supplying their definitions. They fall into three classes: standard, common, and system-specific.In C++, there is a fourth category, the named operators. They act like predefined macros, but you cannot undefine them.
编译器预定义的宏分为以下四种:
Standard Predefined Macros 标准预定义的宏:__func__ , __FILE__ 之类的就在这类,这类宏在VC 等编译器当中也会有的
Common Predefined Macros 公用预定义宏
System-specific Predefined Macros 特定系统的预定义宏
C++ Named Operators C++ 命名的操作
gcc中的预编译宏
* 预定义的宏
* __NASE_FILE__ 源文件的完整路径名,和 __FILE__ 不同,被引用的文件仍然是原来文件名
* __CHAR_UNSIGNED__ 用于指定该机器上 char 是无符号类型
* __cplusplus 使用 C++ 编译器编译
* __DATE__ 编译时的日期
* __FILE__ 编译文件名
* __func__ 同 __FUNCTION__
* __GNUC__ GCC 的主版本号
* __GNUC_MINOR__ GCC 的次版本号
* __GNUC_PATCHLEVEL__ GCC 的修订号
* __GNUG__ 由 C++ 编译程序定义
* __INCLUDE_LEVEL__ 指 #include 的层次
* __LINE__ 当前行号
* __NO_INLINE__ 不允许 inline
* __OPTIMIZE__ 打开了优化选项
* __OPTIMIZE_SIZE__ 打开了对编译出文件尺寸的优化
* __STDC__ 表示该程序符合 ansi C 标准
* __STDC_HOSTED__ 表示宿主具有标准 C 的环境
* __STDC_VERSION__ 标准 C 制定时间
* __TIME__ 编译时系统时间
__VERSION__ GCC 版本号
* 预定义的宏
* __NASE_FILE__ 源文件的完整路径名,和 __FILE__ 不同,被引用的文件仍然是原来文件名
* __CHAR_UNSIGNED__ 用于指定该机器上 char 是无符号类型
* __cplusplus 使用 C++ 编译器编译
* __DATE__ 编译时的日期
* __FILE__ 编译文件名
* __func__ 同 __FUNCTION__
* __GNUC__ GCC 的主版本号
* __GNUC_MINOR__ GCC 的次版本号
* __GNUC_PATCHLEVEL__ GCC 的修订号
* __GNUG__ 由 C++ 编译程序定义
* __INCLUDE_LEVEL__ 指 #include 的层次
* __LINE__ 当前行号
* __NO_INLINE__ 不允许 inline
* __OPTIMIZE__ 打开了优化选项
* __OPTIMIZE_SIZE__ 打开了对编译出文件尺寸的优化
* __STDC__ 表示该程序符合 ansi C 标准
* __STDC_HOSTED__ 表示宿主具有标准 C 的环境
* __STDC_VERSION__ 标准 C 制定时间
* __TIME__ 编译时系统时间
__VERSION__ GCC 版本号
* 预定义的宏
* __NASE_FILE__ 源文件的完整路径名,和 __FILE__ 不同,被引用的文件仍然是原来文件名
* __CHAR_UNSIGNED__ 用于指定该机器上 char 是无符号类型
* __cplusplus 使用 C++ 编译器编译
* __DATE__ 编译时的日期
* __FILE__ 编译文件名
* __func__ 同 __FUNCTION__
* __GNUC__ GCC 的主版本号
* __GNUC_MINOR__ GCC 的次版本号
* __GNUC_PATCHLEVEL__ GCC 的修订号
* __GNUG__ 由 C++ 编译程序定义
* __INCLUDE_LEVEL__ 指 #include 的层次
* __LINE__ 当前行号
* __NO_INLINE__ 不允许 inline
* __OPTIMIZE__ 打开了优化选项
* __OPTIMIZE_SIZE__ 打开了对编译出文件尺寸的优化
* __STDC__ 表示该程序符合 ansi C 标准
* __STDC_HOSTED__ 表示宿主具有标准 C 的环境
* __STDC_VERSION__ 标准 C 制定时间
* __TIME__ 编译时系统时间
__VERSION__ GCC 版本号
相关文章推荐
- Java实现类似C/C++中的__FILE__、__FUNC__、__LINE__等,主要用于日志等功能中。
- android调试log输出及类似C/C++中的__FILE__、__FUNC__、__LINE__等功能
- 预编译之__LINE__和__FILE__宏
- C标准中预定义的宏,__DATE__,__TIME__,__FILE__,__LINE__,__func__
- Lua 中如何实现类似C语言中 __FILE__, __LINE__, __FUNC__
- C语言中的__FILE__、__LINE__和#line(用于打印当前函数及行数)
- __FILE__,__LINE__,__func__ 真好用,DEBUG利器啊!
- 四个预编译宏:__FILE__,__LINE__,__DATE__,__TIME__
- __FILE__,__func__,__LINE__用法举例
- <Java> 获取当前调用函数, 如同C++中的__FUNC__, __FILE__, __LINE__
- C macros __LINE__, __FILE__ and __func__
- 关键字: C/C++,预定义宏,__FILE__, __LINE__, __DATE__,__TIME__,__func__,__FUNCTION__ __FILE__:当前源代码文件名的字符串文
- JAVA中实现C语言的_FILE_,_LINE_,_FUNC_,_TIME_
- C语言中的__FILE__、__LINE__和__func__
- 对于FILE,LINE,func这样的宏
- C语言中的 _FILE_ 、_LINE_ 、_func_ 和 #line
- C macros __LINE__, __FILE__ and __func__
- 对于FILE,LINE,func这样的宏
- Fastdfs 关于file: shared_func.c, line: 994, malloc 1 bytes fail问题的解决
- C Language Study - __FILE__ & __func__ & __TIME__ & __DATE__ &__LINE__