#define(预处理程序指令)是否继承自头文件

时间:2014-12-19 09:11:16

标签: c

如果我在头文件中有一些#define,它是否可以在包含该标头的源代码中使用? [类似于#define Bytef unsigned int]

3 个答案:

答案 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指令的确切位置复制和粘贴头文件的内容一样。