2013-12-22 1 views
-1
if(aptr[i] < bptr[i]) 
    a->used = BI_LESS_THAN; 
else 
    return BI_GREATER_THAN; 

이 코드가 컴파일되지 않는 이유를 알 수 없습니다. 다른 사람이 시작하기 전에 '}'를 기다리고 있다고합니다. 이것은 C에서 유효하지 않습니까? GCC를 사용하여 Netbeans에서 컴파일 중입니다.if else 구문 오류가 C

+1

오류가 스 니펫에 포함되어 있지 않습니다. –

+3

아마도 주변 코드에 있습니다. 그 부분은 괜찮아. 컴파일러는 때때로 오류가 아닌 _really_ 행 번호를 제공합니다. 그것은 처음 불일치를 발견했을 때입니다. – Guido

+0

BI_LESS_THAN 정의 란 무엇입니까? – buc

답변

4

오류는 BI_LESS_THAN 매크로의 형식이 잘못됨과 일치합니다. 파일이 실제로 컴파일되기 전에, C 전처리 기는 정의한대로 정확히 BI_LESS_THAN을 대 체합니다. 그래서 컴파일러 오류가 다소 이상하게 보입니다.

+1

실수로 매크로에 세미콜론이 포함되었습니다. – chasep255

+0

예, 두 번째 세미콜론은 빈 문을 작성하므로'if'와'else' 사이에 효과적으로 두 개의 명령문이 있습니다. –

관련 문제