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

マクロ名にピリオドを含めることはできません。Header1またはに名前を変更しHeader1hます。

余談ですが、ほとんどのマクロは ALL_UPPERCASE が標準です。

于 2013-11-05T19:59:24.870 に答える
1

マクロ名にドットを含めないでください。使った方がいい

#ifndef HEADER1_H
#define HEADER1_H

...

#endif
于 2013-11-05T19:59:47.023 に答える