0

我写

#ifndef Header1.h
#define Header1.h

class Complex
{
   [...]
};

#endif

在我的项目(Visual Studio 2010)中,我得到一个错误 C2008:'。' : 宏定义中的意外。我不明白“Header1.h”的问题是什么或如何解决它。

4

4 回答 4

4

不要使用 . 改用 _

#ifndef HEADER1_H
#define HEADER1_H

class Complex
{
   [...]
};

#endif
于 2013-11-05T19:59:21.483 回答
2

您需要在此处使用标识符

#ifndef Header1.h
        ^^^^^^^^^

并且它们不能包含.在其中,我们可以从草案 C++ 标准部分16 预处理指令1段中看到这一点,其中包括以下语法:

# ifdef identifier new-line groupopt
        ^^^^^^^^^^
# ifndef identifier new-line groupopt
         ^^^^^^^^^^

通常包括警卫都是大写和下划线:

 #ifndef HEADER1_H
于 2013-11-05T20:01:39.297 回答
1

宏名称不能包含句点。将其重命名为Header1Header1h

顺便说一句,大多数宏的标准是 ALL_UPPERCASE。

于 2013-11-05T19:59:24.870 回答
1

宏名称不应包含点。你最好用

#ifndef HEADER1_H
#define HEADER1_H

...

#endif
于 2013-11-05T19:59:47.023 回答