0

最初我的代码是:

#ifndef 2DO_H   
#define 2DO_H  
int ReadNumber();  
void WriteAnswer(int Nsumber1, int Number2);  
#endif

但是我遇到了一个错误#if[n]def expected an identifier。所以我玩弄它并意识到我的错误在2DO_H. 当我将代码更改为:

#ifndef DO_H   
#define DO_H  
int ReadNumber();  
void WriteAnswer(int Nsumber1, int Number2);  
#endif

它在上述情况下有效,因为我2DO_H改为DO_H. 为什么当我在标识符前面有一个额外的数字时,会出现错误?

4

2 回答 2

3

因为标识符不允许以数字开头。这包含在2.11 Identifiers当前的 C++ 11 标准中,特别是语法部分:

identifier:
    identifier-nondigit               # No digit allowed at front here.
    identifier identifier-nondigit    # Nor here.
    identifier digit                  # Nor here.
于 2013-03-15T06:12:15.360 回答
3
#ifndef 2DO_H

不。

#ifndef TODO_H

反而。标识符不能以数字开头。

于 2013-03-15T06:12:40.530 回答