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
   18   19   20   21   22   23   24   25   26   27   28