Вот единственное, о чем я могу подумать (не видя больше кода), что могло бы вызвать это:
Ваши идентификаторы в заглавных буквах - это макросы, определенные примерно так:
#define ACTION_MOVELEFT = 1
#define ACTION_MOVEDOWN = 2
и так далее. Когда макросы затем раскрываются, вы получаете код, подобный следующему:
case 'h':
nextCommand.setAction (= 1);
break;
=
не используется для определения макроса; для объектоподобных макросов все, что следует за именем макроса до новой строки, заканчивающейся определением макроса, является частью списка замены. Итак, макросы должны быть определены следующим образом:
#define ACTION_MOVELEFT 1
#define ACTION_MOVEDOWN 2
и т. Д.
Однако вам следует рассмотреть возможность использования перечисления для обеспечения безопасности типов и во избежание использования препроцессора, когда его не нужно использовать:
enum ActionType
{
ActionMoveLeft,
ActionMoveDown
};
Или, по крайней мере, использовать const int
с вместо #define
с.