Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ &引用;“宏定义中出现意外”;_C++_Macros - Fatal编程技术网

C++ &引用;“宏定义中出现意外”;

C++ &引用;“宏定义中出现意外”;,c++,macros,C++,Macros,我写 #ifndef Header1.h #define Header1.h class Complex { [...] }; #endif 在我的项目(Visual Studio 2010)中,我收到一个错误C2008:“.”:宏定义中出现意外错误。我不明白“Header1.h”有什么问题,也不知道如何解决它。不要使用。改用u #ifndef HEADER1_H #define HEADER1_H class Complex { [...] }; #endif 宏名称不

我写

#ifndef Header1.h
#define Header1.h

class Complex
{
   [...]
};

#endif

在我的项目(Visual Studio 2010)中,我收到一个错误C2008:“.”:宏定义中出现意外错误。我不明白“Header1.h”有什么问题,也不知道如何解决它。

不要使用。改用u

#ifndef HEADER1_H
#define HEADER1_H

class Complex
{
   [...]
};

#endif

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


另一方面,大多数宏的标准格式都是大写。

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

#ifndef HEADER1_H
#define HEADER1_H

...

#endif
您需要在此处使用标识符:

<> P>他们可以从C++标准部分草案<代码> 16代码>预处理指令1段中看到这一点,其中包括以下语法:

# ifdef identifier new-line groupopt
        ^^^^^^^^^^
# ifndef identifier new-line groupopt
         ^^^^^^^^^^
通常情况下,防护装置均为大写和下划线:

 #ifndef HEADER1_H

错误信息非常清楚。。。除了重述它,我们什么也做不了——你不能在宏名称中使用
。它不是用那种语气的。我会编辑它。无法编辑,我将删除它。错误消息确实很清楚,但我是初学者,不知道规则。
 #ifndef HEADER1_H