最初我的代码是:
#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
。为什么当我在标识符前面有一个额外的数字时,我收到错误?
答案 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
代替。标识符不能以数字开头。