c++ - #endif GUARD_H 是好的做法吗?

标签 c++ directive conditional-compilation

<分区>

考虑一下:

#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)属性为空

c++ #ifdef Mac OS X 问题

rust - Rust build.rs 脚本的条件编译?

javascript - AngularJS 和 Jasmine : isolateScope() is undefined

c++ - BlackJack 卡 vector c++/随机数

c++ - windows.h 已经包含 afxv_w32.h - CString

c++ - 如何在 Linux 应用程序上使用 C++ 中的终端输入中断循环/进程

javascript - Angularjs 1.30 密码验证。验证确认密码匹配

conditional - 基于外部值的 Cython 条件编译

c++ - 将 C++ 函数导入 Python 程序