最初,我的代码是:

#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/

10-12 00:53