gcc 실천(1):warning:truth value 로 사 용 된 할당 주위 에 괄호 를 제안 합 니 다[-괄호]
894 단어 gcc 실천
#include
int main(void)
{
int a = 1;
int b = 2;
if (a = b)
{
//do nothing
}
return 0;
}
gcc 에서-wall 옵션 을 사용 하여 컴 파일 합 니 다.경고:
warning: suggest parentheses around assignment used as truth value [-Wparentheses]
판단 하 는 문구 에 할당 을 사용 하 는 것 은 매우 보편적 이지 만,예 를 들 어 전형 적 인 포인터 조작 문구 while(*s+=*t++)(경고 도 나타 날 수 있다)를 사용 할 때 더 보편적 인 현상 은 사람들 이'='을 사용 할 때 분명히'='을 사용 하려 고 하 는 것 이지 할당 이 아니다.
따라서 gcc 편집 기 는-wall 옵션 에서 사용자 가 판단 문 에서'='을 사용 하 는 진정한 의 도 를 명 확 히 합 니 다.어느 날,당신 은 gcc 컴 파일 러 가 당신 에 게 이 문 제 를 일 깨 워 준 것 을 다행 으로 생각 할 것 입 니 다.
판단 문 에'='을 사용 하려 면 괄호 를 넣 어야 합 니 다.
if ((a = b) != 0)
혹은
if ((a = b))
이렇게 하면 안전 위험 을 없 앨 수 있 고 gcc 도 경찰 에 신고 하지 않 을 것 이다.