我编译了一个包含以下行的example.c文件:
#include "parse/properties/properties.h"
编译器创建一个example.o文件。是否包含在example.o文件中的头文件的路径?或者是外部信息?
答案 0 :(得分:3)
目标文件格式可能是也可能没有标准化(标准甚至没有提到“目标文件”)。编译器可能会插入#include以进行调试,或者可能会完全跳过它。
另请注意,#include'ing是由编译器使用文本预处理器在标准描述为翻译的第一阶段完成的; #include-directive告诉预处理器逐字复制并替换另一个文件的内容。这种情况发生在生成实际目标文件之前很久
答案 1 :(得分:1)
它是实现定义但通常当您使用调试选项进行编译时(例如gcc中的-g
)包含文件路径以帮助您进行调试