我学过C,现在我决定转C++。
所以,在 C 中,我在头文件中使用了
#ifndef
#endif
。我应该在 C++ 中使用相同的命令吗?或者有其他选择吗?
是的,预处理器以 (大部分) 相同的方式工作,因此您仍然应该使用预处理器指令来防止多次包含相同的代码。
C 和 C++ 预处理器之间的任何功能差异都可能是边缘情况,与您当前的学习水平不太可能相关。
文件/头关系在 C 和 C++ 中是相同的。
foo.h:
#ifndef SOME_UNIQUE_NAME_HERE
#define SOME_UNIQUE_NAME_HERE
// your declarations (and certain types of definitions) here
#endif
C++ 预处理器与其对应的 C 语言相比,本质上是一样的。所有指令都可以在任何一种语言中使用,无论是用头文件 (.h) 还是源文件(.c、.cc、.cpp)编写。
Commader_Quazar的答案是正确的。
或者你可以替代:
#ifndef SOME_UNIQUE_NAME_HERE
#define SOME_UNIQUE_NAME_HERE
// your declarations (and certain types of definitions) here
#endif
与:
#pragma once
// your declarations (and certain types of definitions) here
它可以让你写 1 行代码而不是 3 行,并且更不容易出错(因为在这种情况下你不必担心记住把
#endif
放在文件的末尾)但是我个人更喜欢第一个选项。