main.c:
#include <stdio.h>
#define min(X,Y) ((X)<(Y)?(X):(Y))
int main()
{
printf("The min is %d\n",min(3,4));
return 0;
}
预处理gcc -E main.c > main.pre.c
cat main.pre.c
从中能大量的看到以#开头的行。每行的格式是“# 行号 文件名 标志“,其中的”行号“与”文件名“表示从它后一行开始的内容来源于哪一个文件的哪一行,标志可以是1,2,3,4四个数字,每个数字的含义如下:
1:表示新文件的开始
2:表示从一个被包含的文件中返回
3:表示后面的内容来自系统头文件
4:表示后面的内容应当被当做一个隐式的‘ extern “C” ’块
本文通过一个简单的C语言程序实例,展示了如何使用GCC编译器的预处理功能来展开宏定义,并解释了预处理过程中产生的特殊标记含义。文章还介绍了宏定义min的具体实现方式及其在程序中的应用。
924





