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 版本号
http://www.thedebian.org.cn/thread-142-1-1.html
分享到:
相关推荐
1. **预处理(Preprocessing)**:GCC会处理源代码中的宏定义、条件编译指令(#if, #ifdef等)以及包含头文件。预处理器将这些操作转换为标准的C代码形式。 2. **编译(Compilation)**:接着,GCC将预处理后的代码...
预处理是GCC编译过程中最初始的阶段。在这个阶段,GCC会处理以`#`字符开头的预处理器指令。预处理器的主要任务包括: - **宏替换**:对宏进行展开,例如`#define`定义的宏会被相应的文本替换。 - **文件包含**:...
这可能涉及函数调用的语法、类型定义、预处理器宏等方面。 5. **编译流程**:理解Linux内核的编译流程至关重要,包括如何配置内核、如何编译模块、如何链接静态和动态库等。对于Linux 0.11,编译流程可能比现代内核...
Java 和 C 语言在编程范式上有显著差异,C 语言支持预编译指令,如 `#define`、`#ifdef`、`#endif` 等,这些指令在源代码编译之前进行处理,可以实现条件编译、宏定义等功能。然而,Java 本身并不直接支持这样的预...
此外,GCC还提供了诸如预处理器宏定义、链接特定库、指定头文件搜索路径等功能,以满足各种复杂的开发需求。 总之,GCC是Linux环境下C程序开发不可或缺的一部分,其强大的功能和广泛的语言支持使得它在开源世界中...
预处理阶段是编译过程的第一步,由GCC的预处理器cpp执行。预处理器主要处理#include指令,展开宏定义,并处理条件编译指令(#ifdef, #ifndef, #endif等)。hello.i文件包含了预处理后的代码,但仍然保持高级语言的形式...
在编译过程中,预处理阶段会处理宏定义、条件编译等;编译阶段将源代码转化为汇编代码;汇编阶段将汇编代码转化为机器码;链接阶段则将多个目标文件合并成一个可执行文件,同时处理符号引用和重定位。 FreeRTOS的...
在`【GCC】gcc预编译指令及预编译宏整理 - 在路上 - 博客频道 - CSDN_NET.mht`中,详细阐述了GCC编译器中的预编译指令和预编译宏。预编译指令通常以`#`开头,如`#define`用于定义宏,`#include`用于引入头文件,`#...
* -Idirname:将 dirname 所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。 头文件包含 在 C 程序中,头文件包含有两种情况: * A) #include * B) #include “myinc.h” 其中,A 类使用...
例如,在实际的嵌入式开发过程中,开发者可能会使用GCC来编译C/C++代码,然后使用ld进行链接,并最终生成可在目标平台上运行的可执行文件。此外,objcopy和objdump等工具还可以帮助开发者进行二进制文件的转换和调试...
1. **预处理**:这一阶段,GCC会处理源代码中的预处理器指令,如宏定义、头文件包含等。预处理器会将宏替换为实际的代码,并将头文件插入到源代码中,生成一个没有预处理器指令的文件。 2. **编译**:编译器将...
- 预处理器CPP(C Preprocessor)负责处理源代码中的预处理指令,例如宏定义、条件编译等。 - 宏展开:将源代码中的宏定义进行展开替换。 - 文件包含:处理`#include`指令,将包含的文件内容插入到当前文件中。 ...
GCC不仅是一个编译器,还是一套完整的编译工具链,包括预处理器cpp、编译器gcc/g++、汇编器as和链接器ld。 GCC的编译过程分为四个步骤: 1. 预处理:处理宏定义(#define)、条件编译(#if等)和包含文件(#include)。 2...
1. **预处理**:GCC 或 G++ 首先会通过预处理器(cpp)对源代码进行预处理,处理宏定义、头文件包含等,并生成一个名为 .i 的文件。 2. **编译**:预处理完成之后,编译器(例如 egcs)将 .i 文件编译成汇编语言代码...
在预编译过程中,GCC会处理这些`#include`指令,将头文件的内容合并到源文件中,确保编译器能理解所有类型和函数的定义。 当我们在程序中引入头文件并修改源代码时,应确保编译过程无误。通过运行`gcc -o game game...
1. **预处理(Preprocessing)**:预处理器cpp会处理源代码中的宏定义、条件编译指令(#if, #ifdef, #endif)等,并将包含的头文件展开,生成一个新的中间文件.i。 2. **编译(Compilation)**:接下来,编译器cc1将...
总的来说,GCC是Linux开发中不可或缺的工具,其强大的功能和灵活性使得程序员能够高效地编译和调试代码,同时,它的开源特性也促进了软件开发的开放性和协作性。通过理解和熟练使用GCC的各种选项和编译过程,开发者...
这些宏能够提供有关编译环境、编译时间以及编译器版本等有用的信息,对调试程序和优化代码具有重要意义。本文将详细介绍CCS(Code Composer Studio)中预定义宏的功能与使用方法。 #### __DATE__ - **功能**:此宏...