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