在C中包含Guards语法
大家好我想问一个关于C编程中包含守卫的问题。我知道有目的但在某些代码中我看过#define之后写的“1”
#ifndef MYFILE_H #define MYFILE_H 1
这个“1”的目的是什么? 有必要吗 ? 谢谢
如果MYFILE_H
宏未在代码中的其他位置使用,则没有必要。
如果在其他地方使用#ifdef
或#ifndef
指令,如下所示:
#ifdef MYFILE_H
然后在宏定义中不需要1
但如果它在其他地方使用#if
指令,如下所示:
#if MYFILE_H
然后在宏定义中需要1
(或任何值!= 0
)。
请注意,可以在源文件中使用这些指令来validation是否包含标头。
没有必要, #define MYFILE_H
应该这样做。 定义 MYFILE_H
(由ifndef
测试的条件)的事实与其值分开。 它可能是0,’,42等。
据我所知,这是一种风格的东西。 在我看来,“1”是不必要的; 它并没有真正做任何事情。