#endif GUARD_H 是好的做法吗? [复制]
Posted
技术标签:
【中文标题】#endif GUARD_H 是好的做法吗? [复制]【英文标题】:Is #endif GUARD_H good practice? [duplicate] 【发布时间】:2011-02-17 15:24:05 【问题描述】:考虑一下:
#ifndef GUARD_H
#define GUARD_H
...
#endif GUARD_H
而不是:
#ifndef GUARD_H
#define GUARD_H
...
#endif // GUARD_H
我经常在#endif
看到一个“标识符”被注释掉,但没有注释它仍然有效。
#endif
之后的所有内容都被忽略还是...?
【问题讨论】:
【参考方案1】:不,这不是有效的 C++:它的格式不正确。 # endif
和终止预处理指令行的换行符之间不能有标记。
如果您想重述 #if
指令中的条件,您可以在评论中这样做:
#endif // GUARD_H
但是,这实际上只是多余的,尤其是对于包含保护:如果它是头文件中的最后一个 #endif
,那么几乎可以肯定的是要结束顶部使用的 #ifdef
以防止多重包含,不是吗?
在您可能有多个嵌套级别的条件指令的其他地方,这可能很有用,但即便如此,通常最好重构代码以使其更简单或更直接。 p>
【讨论】:
以上是关于#endif GUARD_H 是好的做法吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在同一个线程中多次锁定 CCriticalSection 是好的做法吗?
为啥从 main() 显式返回 0 被认为是好的做法? [复制]