코드 작성부터 실행까지의 전 과정
1. 첫 번째 C 프로그램 작성
C 언어에서 모든 프로그램은 하나 이상의 함수(function)로 구성된다. 그중에서도 프로그램의 시작 지점은 반드시 main 함수여야 한다. 이 함수가 없으면 프로그램은 실행될 수 없다.
다음은 간단한 "Hello World" 출력 프로그램이다:
#include <stdio.h>
int main() {
printf("Hello World\n");
return 0;
}
#include <stdio.h>: 표준 입출력 기능을 사용하기 위한 헤더 파일 포함printf(...): 화면에 문자열을 출력하는 함수\n: 줄바꿈을 의미하는 이스케이프 시퀀스return 0;: 프로그램이 정상적으로 종료되었음을 운영체제에 알림
이 코드는 확장자가 .c인 파일(예: hello.c)로 저장해야 한다.
2. 컴파일 과정
작성한 소스 코드는 컴퓨터가 직접 실행할 수 없으므로, 먼저 컴파일해야 한다. macOS에서는 clang 또는 cc 명령어를 사용할 수 있다.
터미널에서 다음 명령어로 컴파일한다:
cc -c hello.c
성공하면 동일 디렉터리에 hello.o라는 오브젝트 파일(object file)이 생성된다. 이 파일은 아직 실행할 수 없다.
컴파일 중 문법 오류가 있으면 다음과 같은 메시지가 출력된다:
hello.c:3:1: error: unknown type name 'intt'
intt main()
^
hello.c:5:32: error: expected ';' after expression
printf("Hello World\n")
^
모든 오류를 수정한 후 다시 컴파일해야 한다.
3. 링크 과정
오브젝트 파일은 단독으로 실행할 수 없으며, 필요한 라이브러리와 결합되어야 완전한 실행 파일이 된다. 이 과정을 링크(linking)라고 한다.
다음 명령어로 링크한다:
cc hello.o
성공하면 a.out이라는 기본 이름의 실행 파일이 생성된다. 이름을 지정하려면 -o 옵션을 사용한다:
cc -o hello hello.o
또는 소스 파일에서 직접 컴파일과 링크를 한 번에 수행할 수도 있다:
cc -o hello hello.c
4. 프로그램 실행
생성된 실행 파일은 터미널에서 다음과 같이 실행할 수 있다:
./hello
실행 결과:
Hello World
이렇게 해서 C 언어로 작성한 첫 번째 프로그램이 성공적으로 실행된다.
5. 개발 흐름 요약
- 작성:
.c확장자의 소스 파일 작성 - 컴파일: 소스를 오브젝트 파일(
.o)로 변환 - 링크: 오브젝트 파일과 라이브러리를 결합해 실행 파일 생성
- 실행: 최종 실행 파일을 통해 프로그램 동작 확인
6. 주요 명령어 정리
| 명령어 | 설명 |
|---|---|
cc -c file.c |
소스 파일을 오브젝트 파일로 컴파일 |
cc file.o |
오브젝트 파일을 링크하여 a.out 생성 |
cc -o name file.c |
소스를 컴파일하고 링크하여 name이라는 실행 파일 생성 |
./a.out |
현재 디렉터리의 실행 파일 실행 |
7. 학습 팁
- 문법보다 사용법 우선: 처음에는 코드의 정확한 의미보다 작동 방식에 집중하자.
- 가독성 유지: 들여쓰기와 줄 바꿈을 통해 코드를 읽기 쉽게 작성해야 협업과 유지보수가 용이하다.
- 오류는 친구다: 컴파일 오류 메시지를 잘 읽고 수정하는 연습을 하자. 이는 디버깅 능력 향상에 큰 도움이 된다.