大家好我想问一个关于C编程中包含守卫的问题。我知道有目的但在某些代码中我看过#define之后写的“1”
#ifndef MYFILE_H
#define MYFILE_H 1
这个“1”的目的是什么?有必要吗 ? 谢谢
答案 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
)。
请注意,可以在源文件中使用这些指令来验证是否包含标头。