预处理: gcc -E xxx.c -o xxx.i
预处理后的文件格式:
该文件详解:
源文件名和行号信息通过格式为# linenum文件名标志的行来传递。这些被称为行标记。它们会根据需要插入到输出中(但绝不会在字符串或字符常量中)。他们的意思是,下一行起源于文件filename中的linenum行。文件名永远不会包含任何非打印字符;它们被八进制转义序列替换。文件名后面有零个或多个标志,分别是' 1 '、' 2 '、' 3 '或' 4 '。如果有多个标志,则用空格隔开。' 1 '表示新文件的开始。' 2 '表示返回到一个文件(在包含了另一个文件之后)。' 3 '这表示以下文本来自系统头文件,因此某些警告应该被抑制。' 4 '表明下面的文本应该被包装在隐式extern“C”块中。来源于Preprocessor Output (The C Preprocessor)
当预编译一个文件,当中不包含某个头文件时:
gcc -E xxx.c -I dir_path -lxxx -o xxx.i
'''
gcc -E:预处理命令
xxx.c:需要进行预处理的文件
-I: 大写的i
dir_path:.h头文件所在的目录位置
-lxxx:-l(小写的L) xxx代表.h文件的文件名
-o:最后输出生成的文件
'''
预处理: gcc -E -P xxx.c -o xxx.i
加上 -P 之后,生成的文件不包含以’#‘开头的信息