2017-01-28 15 views
0

나는 왜 이것을 할 수 없는지 잘 모르겠습니다. 누군가 컴파일 오류를 해결하는 방법에 대해 설명 할 수 있습니까? 나는 C가 처음이다. 자바에서왔다.C에서 스위치 상태와 함께 #define 사용

오류 : 예상 ':'또는 '...'앞에 ';' 세미콜론을두고 정의합니다 사용하는 경우 @PSkocik 및 @BLUEPIXY에 의해 위에서 언급 한 바와 같이

: 미래의 시청자에 대한

#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; 
} 
+1

'#DEFINE NORTH 1;'->'#DEFINE NORTH 1' – BLUEPIXY

+2

'#DEFINE NORTH 1'. 세미콜론이 없습니다. – PSkocik

+0

'# define'은 텍스트 대체를합니다. 식별자의 뒤의 모든 부분은 그대로 복사됩니다. 그래서 전처리 후'case NORTH :'줄은'case 1; :'. – user3386109

답변

1

토큰입니다. 대신

#define NORTH; 

사용

#define NORTH