home > working > C/C++ > Source, Tip

 


Name  
   조규남 
Subject  
   switch...case 를 쓸 때 {}를 써야 하는 경우
subject: c syntax

가끔 switch...case 문을 사용할 때 {}

error C2143: syntax error : missing ';' before 'type'

이런 에러 메세지를 만날 경우가 있다. (Visual C++을 사용할 경우)

어떤때는 나고 어떤때는 나지 않는데 에러가 나는 경우는 Case 문에 변수를 선언 할 때 이다.

switch(eventType)
{
                     int     *msg;
        case WORKER_MESSAGE:
                int x;
                msg = NULL;
                break;        
        default:
                break;
}

위의 경우에 WORKER_MESSAGE Case안에서 int x 를 선언하였기 때문에 에러가 발생한다. 이럴 경우 WORKER_MESSAGE 부분의 Case를 {}로 묶어 주어야 한다.

임성환 :: 감사합니다(__) case 문 안에서 변수를 선언할때 중괄호{}로 묶여 있어야 되는군요. 2003/09/04  
임성환 :: 그리고, 고민해 봤으니까 소박하게 한가지 덧붙이겠습니다. \n case문 안에서 중괄호{} 선언 없이 변수를 선언 했을때는 os자체가 stack에 변수의 크기를 잡을때 2003/09/04  
임성환 :: 어디서 부터 언제까지 메모리를 할당해 줄지 명확하지 않기 때문에 error가 난다고 그럽니다. 대신 중괄호{}를 해주면 어디서 시작해서 어디서 끝나라는 명확성이 있기때문에 2003/09/04  
임성환 :: error가 안난다고 합니다. (단, case문 들어가기전에 switch문 바로 아래서 변수 선언시에는 가능합니다.) 답변 감사드리구요. 오늘도 즐거운 하루 보내세요~ (__) 2003/09/04  
조규남 :: 그렇군요 ^^* 저도 왜 그런지 이유는 모르고 있었는데 감사 합니다. 2003/09/04  
이상수 :: 오호~~ 2003/09/04   

Name Memo Password  
        


Prev
   System의 Process 를 모니터링 하는 프로그램 [1]

조규남
Next
   C에서 C#까지 체계적으로 공부 할 수 있는 책 목록 [1]

조규남


Copyright 1999-2018 Zeroboard / skin by JiYoo / edit by Mystous