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