在C中包含Guards语法

时间:2012-01-18 18:05:40

标签: c include

大家好我想问一个关于C编程中包含守卫的问题。我知道有目的但在某些代码中我看过#define之后写的“1”

#ifndef MYFILE_H
#define MYFILE_H 1

这个“1”的目的是什么?有必要吗 ? 谢谢

3 个答案:

答案 0 :(得分:6)

没有必要,#define MYFILE_H应该这样做。 MYFILE_H 已定义(由ifndef测试的条件)与其值分开的事实。它可以是0,',42等等。

答案 1 :(得分:1)

据我所知,这是一种风格的东西。在我看来,“1”是不必要的;它并没有真正做任何事情。

答案 2 :(得分:1)

如果代码中的其他位置未使用MYFILE_H宏,则无需使用。

如果在其他地方使用#ifdef#ifndef指令,请执行此操作:

#ifdef MYFILE_H 

然后在宏定义中不需要1 -

但如果它在其他地方用#if指令,就像这里一样:

#if MYFILE_H

然后在宏定义中需要1(或任何值!= 0)。

请注意,可以在源文件中使用这些指令来验证是否包含标头。