Первоначально мой код был:
#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.11 Identifiers
текущего стандарта C ++ 11, в частности раздел синтаксиса:
identifier:
identifier-nondigit # No digit allowed at front here.
identifier identifier-nondigit # Nor here.
identifier digit # Nor here.
#ifndef 2DO_H
Неа.
#ifndef TODO_H
вместо. Идентификатор не может начинаться с цифры.