这个问题是为了了解头文件包含的标准行为(不是在我的编译器上实现的)。
我有两个同名的头文件(但内容不同):
1) /user/include/myheader.h # In standard system folder
2) /private/myheader.h # In my private folder
假设两个标题都包含相同的多重包含防止宏
#ifndef MYHEADER
#define MYHEADER
...
#endif
我有 C 文件 /private/test.c
,其中包括上述两个标题:
#include <myheader.h> // Includes from standard system folder
#include "myheader.h" // Includes from the folder where test.c is present
由于每个 MYHEADER 定义都有单独的名称空间,因此两个文件中的内容是否在预处理时进入 C 文件?或者由于 MYHEADER 已经在同一个命名空间中定义,第二次包含将被阻止?