我写
#ifndef Header1.h
#define Header1.h
class Complex
{
[...]
};
#endif
在我的项目(Visual Studio 2010)中,我得到一个错误 C2008:'。' : 宏定义中的意外。我不明白“Header1.h”的问题是什么或如何解决它。
不要使用 . 改用 _
#ifndef HEADER1_H
#define HEADER1_H
class Complex
{
[...]
};
#endif
您需要在此处使用标识符:
#ifndef Header1.h
^^^^^^^^^
并且它们不能包含.
在其中,我们可以从草案 C++ 标准部分16
预处理指令第1段中看到这一点,其中包括以下语法:
# ifdef identifier new-line groupopt
^^^^^^^^^^
# ifndef identifier new-line groupopt
^^^^^^^^^^
通常包括警卫都是大写和下划线:
#ifndef HEADER1_H
宏名称不能包含句点。将其重命名为Header1
或Header1h
。
顺便说一句,大多数宏的标准是 ALL_UPPERCASE。
宏名称不应包含点。你最好用
#ifndef HEADER1_H
#define HEADER1_H
...
#endif