如果我在头文件中有一些#define
,它是否可以在包含该标头的源代码中使用?
[类似于#define Bytef unsigned int
]
答案 0 :(得分:1)
是的,你可以做到。
包含的工作原理如下:
想象你有一个文件。
header.h
含量:
void HappyMakerPrototype();
void AnotherPrototype();
和源文件
src.c
含量:
void dummydec();
#include "header.h"
void main ()
{
return;
}
在编译的第一步中,它将运行预处理。
此处,include行会被所包含文件的所有内容替换。
因此,如果要请求预处理文件的输出,它将如下所示:
(在gcc和clang编译器中,您可以请求带有参数-E
的预处理文件,我猜这有助于您理解)
void dummydec();
void HappyMakerPrototype();
void AnotherPrototype();
void main ()
{
return;
}
答案 1 :(得分:0)
是的,你可以做到。当您包含该头文件时,它将继承该头中的所有内容。所以你可以使用那个宏。
答案 2 :(得分:0)
是。包含文件与在#include
指令的确切位置复制和粘贴头文件的内容一样。