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

2024. 8. 22. 18:18·📚 STUDY/🔥 C

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

🌐 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] 주석  (2) 2024.08.22
[2-2] 간단한 프로그램의 일반적인 구조  (0) 2024.08.22
Q&A (lint에 관하여)  (2) 2024.08.21
[1-2] 장점과 단점  (4) 2024.08.21
[1-1] C의 역사  (2) 2024.08.21
'📚 STUDY/🔥 C' 카테고리의 다른 글
  • [2-3] 주석
  • [2-2] 간단한 프로그램의 일반적인 구조
  • Q&A (lint에 관하여)
  • [1-2] 장점과 단점
엄지잉
엄지잉
공부하는거 올림
  • 엄지잉
    엄지잉의 이것저것
    엄지잉
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • 🏫 학교 (2)
        • 👩‍🏫 교직 (1)
        • 🏢 USG (1)
      • 🌱 탐구 (17)
        • 📷 SLAM (7)
        • 💡 연구 (8)
        • 🌐 BOJ (2)
      • 📚 STUDY (47)
        • 🔥 C (32)
        • 📈 알고리즘 (9)
        • 👀 컴퓨터비전 (5)
        • 🔆 UNITY (1)
      • 🏆 자격증 (23)
        • ⚡ 정처기 (17)
        • 🔠 TOEIC (6)
      • 🎈 활동 (4)
        • 🎁 CJ 리모트 인턴십 (2)
        • 😶 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    C
    C++
    정보시스템 구축관리
    모션캡처
    SW 설계
    2021년
    정처기
    컴퓨터비전
    c기초
    정보처리기사
    azurekinect
    프언 활용
    C언어
    실기
    opencv
    Azure Kinect
    Unity
    Remote Internship
    필기
    mocopi
    DB 구축
    2022년
    BOJ
    SW 개발
    식별자
    Body Tracking
    Slam
    알고리즘
    토익
    RC
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
엄지잉
[2-1] 간단한 프로그램 짜기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.