【发布时间】:2018-05-15 17:15:49
【问题描述】:
在为他们的包含保护选择名称时,人们倾向于遵循哪些准则?我不明白为什么 .h 文件的名称会与包含保护中使用的名称略有不同。例如,我见过 sphere.h,然后是 #ifndef SPHERE_H_。我可以轻松地使用SPHERE_ 还是名称必须匹配?下划线也需要吗?
【问题讨论】:
-
至少不要使用包含双下划线或以下划线开头后跟大写字母的名称 - 两者都是保留的。
-
下划线不是必须的,但不要在开头使用一个或在任何地方连续使用两个。更多关于What are the rules about using an underscore in a C++ identifier?
-
这不是
#ifndef,而是header guard 或include guard -
我曾经使用 GUID,例如
H123e4567_e89b_12d3_a456_426655440000。我有一个小程序可以批量生成它们。现在我只使用#pragma once。投票结束主要基于意见。 -
@JiveDadson —
#pragma once可能会失败,而且它不是标准 C++。
标签: c++ c-preprocessor include-guards