본문 바로가기
📚 STUDY/🔥 C

[2-1] 간단한 프로그램 짜기

by 엄지잉 2024. 8. 22.

📌 [프로그래밍] 어록 프로그래밍하기

🌐 pun.c

  • 실행될 때마다 이 메시지를 전송함. To C, or not to C: that is the question.  
#include <stdio.h>

int main(void) {
	printf("To C, or not to C: that is the question.\n");
    return 0;
}

 

#include : C의 표준 입출력 라이브러리에 대한 정보를 첨가하기 위해 필요한 줄

프로그램에서 사실상 실행되는 코드는 main에 존재함. (대표 프로그램을 의미)

main 안에 유일한 명령어는 원하는 자료를 출력해주는 printf 함수

printf : 표준 입출력 라이브러리에 내장된 함수로, 데이터를 깔끔하게 출력해줌.

\n : 다음 줄로 넘긴다는 의미임.

return 0; : 프로그램이 종료될 때, OS에 0이라는 값을 넘김.

 

📌 컴파일과 링크

위 프로그램은 짧고 간결하지만, 실제로 실행하는 건 생각보다 가벼운 일이 아님.

 

1. pun.c의 이름을 갖고 있고, 위의 프로그램 코드 내용을 가진 파일을 제작해야 함. 

    (파일 이름은 상관없고, 대부분의 컴파일러는 뒤에 .c 확장자명이 있어야 컴파일이 가능함.)

2. 이 프로그램을 컴퓨터가 실행할 수 있는 형태로 만들어야 함.

    ① 전처리기 (Preprocessing)

         - 프로그램은 우선 전처리기에 보내지는데, 전처리기는 #으로 시작하는 지시어로 알려진 줄들의 지시를 먼저 따름.

           (프로그램에 무언가를 추가, 수정할 수 있어 에디터와 같다고 볼 수 있음.)

    ② 컴파일 (Compiling)

        - 수정된 프로그램은 컴파일러로 보내지는데, 여기서 코드는 기계어 명령문(object code)로 번역됨.

           (번역은 했지만, 아직 프로그램을 실행할 수 없는 상태)

    ③ 링킹 (Linking)

         - 링커가 컴파일에 의해 생성된 목적 코드를 프로그램을 완벽하게 실행하기 위해 필요한 추가적인 코드와 합침.

            추가적인 코드란, 보통 프로그램에 사용되는 라이브러리 내부 명령문을 의미함.

            (ex, 위 코드에서 printf)

이 과정은 모두 자동으로 처리되기에, 부담가질 필요 ❌, 컴파일과 링크를 하기 위한 명령들은 컴파일러, OS에 따라 다름.

 

in UNIX, pun.c를 컴파일하기 위해 터미널이나 커맨드 라인 창에 입력해야하는 명령문은 아래와 같음.

% cc pun.c

% : 프롬프트 (사용자가 입력하는 거 ❌)

cc : 링킹이 자동으로 이루어짐. 

컴파일(②)과 링킹(③)이 끝나면, cc는 실행 가능한 프로그램을 보통 기본 설정에 따라 a.out이라는 이름으로 만들어냄.

 

cc의 다양한 옵션 중 하나 -o : 실행 가능한 프로그램을 포함하는 파일의 이름을 바꿀 수 있게 해줌.

pun.c 프로그램을 pun이라는 이름으로 생성하고 싶을 때 명령문은 아래와 같음.

% gcc -o pun pun.c

 

 

💡 본 내용은 K.N.King의 C Programming: A Modern Approach 책을 참고하였습니다.

'📚 STUDY > 🔥 C' 카테고리의 다른 글

[2-3] 주석  (0) 2024.08.22
[2-2] 간단한 프로그램의 일반적인 구조  (0) 2024.08.22
Q&A (lint에 관하여)  (2) 2024.08.21
[1-2] 장점과 단점  (2) 2024.08.21
[1-1] C의 역사  (2) 2024.08.21