错误:#if [n] def需要一个标识符

时间:2013-03-15 06:10:54

标签: c++ identifier ifndef

最初我的代码是:

#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。为什么当我在标识符前面有一个额外的数字时,我收到错误?

2 个答案:

答案 0 :(得分:3)

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

identifier:
    identifier-nondigit               # No digit allowed at front here.
    identifier identifier-nondigit    # Nor here.
    identifier digit                  # Nor here.

答案 1 :(得分:3)

#ifndef 2DO_H

#ifndef TODO_H

代替。标识符不能以数字开头。