<分区>
考虑一下:
#ifndef GUARD_H
#define GUARD_H
...
#endif GUARD_H
而不是:
#ifndef GUARD_H
#define GUARD_H
...
#endif // GUARD_H
我经常在 #endif
处看到一个“标识符”被注释掉了,但没有注释它仍然有效。
#endif
之后的所有内容都被忽略还是...?
<分区>
考虑一下:
#ifndef GUARD_H
#define GUARD_H
...
#endif GUARD_H
而不是:
#ifndef GUARD_H
#define GUARD_H
...
#endif // GUARD_H
我经常在 #endif
处看到一个“标识符”被注释掉了,但没有注释它仍然有效。
#endif
之后的所有内容都被忽略还是...?
最佳答案
不,这不是有效的 C++:它的格式不正确。 #endif
和终止预处理指令行的换行符之间不能有标记。
如果您想重述 #if
指令中的条件,您可以在注释中这样做:
#endif // GUARD_H
然而,这实际上只是多余的,特别是对于包含保护:如果它是头文件中的最后一个 #endif
,它几乎肯定是结束 #ifdef
用于顶部以防止多重包含,不是吗?
在您可能有多个嵌套级别的条件指令的其他地方,这可能很有用,但即便如此,通常最好重构代码以使其更简单或更直接。 p>
关于c++ - #endif GUARD_H 是好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5030893/
相关文章:
javascript - Angular Directive(指令)中的绑定(bind)属性为空
javascript - AngularJS 和 Jasmine : isolateScope() is undefined
c++ - BlackJack 卡 vector c++/随机数
c++ - windows.h 已经包含 afxv_w32.h - CString
c++ - 如何在 Linux 应用程序上使用 C++ 中的终端输入中断循环/进程
javascript - Angularjs 1.30 密码验证。验证确认密码匹配