Page 22 -
P. 22

터미널
               0  > ./getting-started


               그러면 앞에서 본 것과 똑같이 출력된다. ‘이식성이 있다(portable)’는 말이 바로 이런 의미다. 프로
                                            C
               그램을 어디서 실행하든 동작(behavior) 이 똑같다.
               앞에서 소개한 컴파일러(c99)를 현재 사용하는 시스템에서 제공하지 않는다면 시스템의 매뉴얼에
                                                                                 3
                            C
               서 어떤 컴파일러 를 제공하는지 찾아보면 된다. 없다면 새로 설치해야 할 수도 있다.  컴파일러
               이름은 제각각이다. 흔히 쓰는 컴파일러 몇 가지를 소개하면 다음과 같다.

                터미널
               0  > clang -Wall -lm -o getting-started getting-started.c
               1  > gcc -std=c99 -Wall -lm -o getting-started getting-started.c
               2  > icc -std=c99 -Wall -lm -o getting-started getting-started.c


               이 컴파일러 중 어떤 것은 현재 시스템에 설치되어 있더라도 컴파일 과정에 문제가 발생할 수 있
               다. Exs 2

               예제 1-1은 가장 이상적인 상황을 보여 준다. 어느 플랫폼에서도 잘 작동하고 똑같은 결과를 내기
               때문이다. 하지만 C 프로그래밍을 하다 보면 특정 환경에서만 작동하거나 플랫폼마다 결과가 다
               른 경우가 종종 있다. 예제 1-2를 살펴보자. 언뜻 보면 예제 1-1과 비슷하다.


                예제 1-2 문제 있는 C 프로그램 예
                 1  /* 장난스런 문장 같지만 정식 C 표현이다. -*- mode: c -*- */
                 2  /* 이 프로그램의 핵심이다. */
                 3  void main() {
                 4    // 선언문
                 5    int i;
                 6    double A[5] = {
                 7      9.0,
                 8      2.9,
                 9      3.E+25,
               10      .00007,



               3  특히 MS 운영체제를 사용한다면 별도로 설치해야 한다. 윈도우 OS에서 기본으로 제공하는 컴파일러는 C99 표준도 완벽히 지원하지 않을뿐
                 더러 이 책에서 소개하는 여러 기능이 제대로 작동하지 않는다. 윈도우 환경에서 사용할 수 있는 컴파일러의 종류에 대해서는 크리스 웰론스
                 (Chris Wellons)의 블로그 글 중에서 "Four Ways to Compile C for Windows"(https://nullprogram.com/blog/2016/06/13/)를 참
                 고하기 바란다.
               exs 2  이 책에 나온 예제를 직접 테스트해서 결과를 기록해 둔다. 특히 잘 작동하는 명령을 기억해 둔다.

         26





     모던c.indd   26                                                                           2021-12-29   오후 2:32:57
   17   18   19   20   21   22   23   24   25   26   27