标题应包含一次

Mih*_*yan 2 c++ header-files

在头文件中,我已经看到了两种主要的方法来定义宏以避免不止一次包含该文件.

1.

#ifndef SOME_CLASS
#define SOME_CLASS
//code ...
#endif
Run Code Online (Sandbox Code Playgroud)

2.

#ifndef SOME_CLASS
//code...
#define SOME_CLASS
#endif
Run Code Online (Sandbox Code Playgroud)

哪个更可取,为什么?

Óla*_*age 11

我更喜欢第一种方法,因为在ifndef之后发生的事情并不重要,因为它将在之后直接定义.

  • 如果//代码碰巧#include其他的东西,然后重新包含这个文件,你会被卡住,而第一种方式没有问题. (10认同)