У меня есть файл, который содержит много операторов #define
, таких как -
#ifndef UTILITY_H
#define UTILITY_H
#define BUMP 7;
#define WHEEL_DROPS 7;
#define WALL 8;
#define CLIFF_LEFT 9;
#define CLIFF_FRONT_LEFT 10;
#define CLIFF_FRONT_RIGHT 11;
#define CLIFF_RIGHT 12;
#define VIRTUAL_WALL 13;
...
...
#endif
В списке содержится около 42 различных значений.Я включаю этот файл в другие мои файлы, но всякий раз, когда я пытаюсь использовать одну из этих констант, я получаю ошибки.Для конкретного примера я пытаюсь сделать -
Sensor_Packet temp;
temp = robot.getSensorValue(BUMP); //line 54
cout<<temp.values[0]<<endl;
Я получаю следующие ошибки:
main.cpp:54: error: expected ‘)’ before ‘;’ token
main.cpp:54: error: expected primary-expression before ‘)’ token
main.cpp:54: error: expected ‘;’ before ‘)’ token
Я не понимаю, почему я получаю эти ошибки, потому что BUMP уже определен,Это также происходит, когда я пытаюсь использовать оператор switch с определениями случаев -
switch(which) {
case BUMP:
//do stuff
case CLIFF_LEFT:
//do stuff
}
Есть ли что-то, что я упускаю при использовании #define
?Я думал, что все, что мне нужно было сделать, это определить константу, и тогда я мог просто назвать ее.Любая помощь приветствуется.