0
Я не уверен, почему мне не разрешено это делать. Может кто-нибудь объяснить, как обойти ошибку компиляции. Я новичок в C, пришел с Java.Использование #define с состоянием переключателя в C
ошибка: ожидается ':' или '...' before ';' Маркер
#define NORTH 1;
int main (void){
switch (functionCallThatReturnsAnInt()){
case NORTH : //compile time error here
printf("NORTH");
break;
case 2 : // no compile time error
printf("2");
break;
//removed rest to reduce clutter
}
}
int functionCallThatReturnsAnInt(void){
return NORTH;
}
'#define СЕВЕР 1;' -> '#define NORTH 1' – BLUEPIXY
' #define NORTH 1'. Нет точки с запятой. – PSkocik
'# define' выполняет замену текста. Все после идентификатора до конца строки копируется дословно. Поэтому после предварительной обработки строка 'case NORTH:' становится 'case 1; : '. – user3386109