最初,我的代码是:
#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
。为什么当标识符前面有一个额外的数字时出现错误? 最佳答案
因为标识符不允许以数字开头。当前C ++ 11标准的2.11 Identifiers
对此进行了介绍,特别是语法部分:
identifier:
identifier-nondigit # No digit allowed at front here.
identifier identifier-nondigit # Nor here.
identifier digit # Nor here.
关于c++ - 错误:#if [n] def应为标识符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15425906/