Page 23 -
P. 23
11 };
12
13 // 필요한 작업을 수행한다.
14 for (i = 0; i < 5; ++i) { 1
15 printf("element %d is %g, \tits square is %g\n",
16 i, 들어가며
17 A[i],
18 A[i]*A[i]);
19 }
20
21 return 0;
22 }
C
이 프로그램을 컴파일하면 다음과 같은 진단 정보(diagnostic) 가 출력된다.
터미널
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...
결과를 보면 한 줄을 꽉 채울 정도로 긴 ‘경고’ 메시지가 여러 줄 나온다. 실행 파일이 생성되긴 하
지만 프로그램을 실행해 보면 결과가 다르게 나온다. 이럴 때는 세부 사항에 주의를 기울여 확인
해 봐야 한다.
clang은 gcc보다 진단 메시지가 더 길게 나온다.
터미널
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]
27
모던c.indd 27 2021-12-29 오후 2:32:57