Ошибка: #if[n]def ожидал идентификатор

Первоначально мой код был:

#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 ответа

Решение

Потому что идентификаторы не могут начинаться с цифры. Это покрыто 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

вместо. Идентификатор не может начинаться с цифры.

Другие вопросы по тегам