더북(TheBook)

이 프로그램을 컴파일하면 다음과 같은 진단 정보(diagnostic)C가 출력된다.

 

터미널

 0 > c99 -Wall -o bad bad.c
 1 bad.c:4:6: warning: return type of 'main' is not 'int' [-Wmain]
 2 bad.c: In function 'main':
 3 bad.c:16:6: warning: implicit declaration of function 'printf' [-Wimplicit-function...
 4 bad.c:16:6: warning: incompatible implicit declaration of built-in function 'printf'...
 5 bad.c:22:3: warning: 'return' with a value, in function returning void [enabled by de...

결과를 보면 한 줄을 꽉 채울 정도로 긴 ‘경고’ 메시지가 여러 줄 나온다. 실행 파일이 생성되긴 하지만 프로그램을 실행해 보면 결과가 다르게 나온다. 이럴 때는 세부 사항에 주의를 기울여 확인해 봐야 한다.

clanggcc보다 진단 메시지가 더 길게 나온다.

 

터미널

 0 > clang -Wall -o getting-started-badly bad.c
 1 bad.c:4:1: warning: return type of 'main' is not 'int' [-Wmain-return-type]
 2 void main() {
 3 ^
 4 bad.c:16:6: warning: implicitly declaring library function 'printf' with type
 5       'int (const char *, ...)'
 6      printf("element %d is %g, \tits square is %g\n", /*@\label{printf-start-badly}*/
 7      ^
 8 bad.c:16:6: note: please include the header <stdio.h> or explicitly provide a
 9       declaration for 'printf'
10 bad.c:22:3: error: void function 'main' should not return a value [-Wreturn-type]
11   return 0;
12   ^ ~
13 2 warnings and 1 error generated.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.