23:59
In God We Struct
Написано:
Это должно об'являть три переменных, типом которых является (безымянный) тип этой структуры.
Однако компилятор сообщает, что вместо A,B,C он ожидает идентификаторы. Но ведь это и есть идентификаторы!
Проверяю на кириллицу -- не подходит, буквы латинские. Заменяю на A0,B0,C0 -- всё работает.
Странно.
ОКАЗАЛОСЬ
что в заголовочном файле уже были строки:
#define A 0
#define B 1
#define C 2
В итоге последняя строка определения переменных после подстановок выглядела так:
} 0,1,2;
Да, тут идентификаторов действительно нет.
Главное, что в наличии таких дефайнов в заголовочном файле виноват я сам. Сначала я вместо об'ектов собирался использовать их условные номера. И подстановочные константы назвал по смыслу теми же именами. И забыл об этом.
struct
{
//...
} A,B,C;
Это должно об'являть три переменных, типом которых является (безымянный) тип этой структуры.
Однако компилятор сообщает, что вместо A,B,C он ожидает идентификаторы. Но ведь это и есть идентификаторы!
Проверяю на кириллицу -- не подходит, буквы латинские. Заменяю на A0,B0,C0 -- всё работает.
Странно.
ОКАЗАЛОСЬ
что в заголовочном файле уже были строки:
#define A 0
#define B 1
#define C 2
В итоге последняя строка определения переменных после подстановок выглядела так:
} 0,1,2;
Да, тут идентификаторов действительно нет.
Главное, что в наличии таких дефайнов в заголовочном файле виноват я сам. Сначала я вместо об'ектов собирался использовать их условные номера. И подстановочные константы назвал по смыслу теми же именами. И забыл об этом.
29.08.2017 в 10:03
29.08.2017 в 10:10
29.08.2017 в 10:31
29.08.2017 в 11:56
29.08.2017 в 15:08
Crawling Chaos, большой разницы между struct и class в плюсах нет. Разве что в классах всё по дефолту приватное, а в структурах - публичное. и аналогичная разножопица с наследованием.
29.08.2017 в 15:15
29.08.2017 в 15:16
30.08.2017 в 06:29
zHz00, тогда предлагаю вкатать автозаменой венгерку по всему проекту и посмотреть, что ещё взорвётся
30.08.2017 в 07:36
31.08.2017 в 08:13