컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Monday, July 03, 2006

[C언어] 이런 경고(Warning)가 나와요: Possibly incorrect assignment... / assignment within conditional expression


C언어에서, if 등의 조건문 속의 ===로 착각해서 잘못 써 놓으면 '확실한 에러'가 아닌 '잘못된 대입 워닝'만 나기에 주의가 필요합니다.

비주얼베이직에서는 조건문이든 변수 대입이든 항상 = 을 사용하지만,

C언어를 포함한 대부분의 언어에서는 == 을 사용해야 하고, 그냥 = 은 '변수 대입'에 사용됩니다.


O: if (i == j) puts("같습니다");

X: if (i = j) puts("같습니다");


치명적인 오타지만, 에러가 나지 않고 그대로 컴파일이 되어 버리기 때문에, 참 골치 아픕니다. C에서는 이런 경우가 많기 때문에 에러 메시지뿐만 아니라 경고(Warning)메시지도 잘 살펴 보아야 합니다.



구체적으로는 이런 경고(Warning)가 나옵니다:

Warning W8060 foo.c 226: Possibly incorrect assignment in function TestFunc
경고: TestFunc() 함수에서, 잘못된 대입이 있는 듯함

또는

warning C4706: assignment within conditional expression
경고: 조건문 속의 대입





더 읽기: C/C++

2 Comments:
At July 4, 2006 at 2:41 PM, Anonymous Anonymous said...

if(x == 0)을
if(0 == x)로 쓰시는 분들도 계시더군요.

이 코딩스타일은
if(0 = x)라고 잘못치면 바로 에러나죠.

 
At July 4, 2006 at 2:50 PM, Blogger mwultong said...

그런 방법이 있었군요..

(∩_∩)

 

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top