안녕하세요.
금일부터 C 언어에 대한 정리를 작성합니다.
0. 알림사항
- 성안당에서 출판한 "C 기초 플러스 6판" 을 기준으로 합니다.(책 내용을 기반으로 하되 저의 생각을 부가하여 작성합니다.)
- 제가 생각했을 때 필요없는 내용은 제거하고, 필요한 내용은 추가했습니다.(따라서 더 자세한 내용을 위해서는 책을 참고해주시길 바랍니다.)
- 또한 책 내용 안에 있는 소스코드는 아래의 링크에서 다운받아 사용했습니다.(회원가입 후 로그인해야 합니다.)
https://www.cyber.co.kr/book/post/237
성안당 출판사 공식 도서몰
소방/안전, 에너지/화학, 전기전자, IT/컴퓨터, 미용 기술공학 자격증, 과학학습만화, 실용서 등 판매.
www.cyber.co.kr
1. C 언어 표준(C Standard)
- C89/C90
- C 언어는 ANSI(미국표준협회) 와 ISO(국제표준화기구) 에서 표준을 만들었습니다.
- ANSI 는 1989년에 정식으로 표준을 채택하였고, ISO 는 1990년에 정식으로 표준을 채택하였습니다.
- 따라서 C 언어의 표준은 표준채택년도를 기준한 C89/C90 또는 표준채택기관을 기준한 ANSI/ISO 표준 이라고 부를 수 있습니다.
- 이후 C99 개정, C11 표준이 나왔지만 대부분 C 언어라고 하면 위의 C89/C90 을 기준으로 합니다.
2. 컴파일(Compile)
0) 컴파일 언어
- C 언어는 대표적인 컴파일 언어입니다.
- 따라서 언어의 문법 이전에 컴파일에 대한 개념을 알아야 합니다.
1) 컴파일이란
- 컴파일이란 개발자의 소스코드(SauceCode)를 실행파일(RunCode)로 변환하는 것을 말합니다.
- 쉽게말해, 사람이 이해할 수 있는 문서를 컴퓨터가 이해할 수 있는 기계어로 변환하는 것을 말합니다.
2) 컴파일 과정

- 첫번째로 컴파일러는 소스코드를 오브젝트 코드로 변환합니다.(초기 변환, 컴파일링)
- 두번째로 링커는 오브젝트 코드와 라이브러리 코드, 시동 코드를 합쳐 실행 코드를 생성합니다.(최종 변환, 링킹)
- 컴파일을 엄밀히 구분하여 협의로 보면 한 단계(소스코드 -> 오브젝트 코드)만을 의미하지만, 넓게 보면 컴파일 과정 전체를 의미합니다.
3) 라이브러리 코드(Library Code)
- 함수의 실제 기능을 구현한 코드입니다.
- 크게 정적 라이브러리(lib)와 동적 라이브러리(dll)가 있습니다.
4) 시동 코드(Startup Code)
- C 언어 프로그램을 시작하기 전 필요한 준비를 하는 코드입니다.
- 주로 스택, 전역 변수를 초기화 하거나 C 프로그램의 main() 을 호출합니다.
3. 컴파일러 설치(Windows 기준)
0) GCC 컴파일러
- GCC 컴파일러란 리눅스 및 유닉스 계열 컴파일러를 의미하는데, 가장 널리 알려진 오픈소스 컴파일러 입니다.
1) MSYS2
- MSYS2 란 윈도우(Windows) 환경에서 리눅스 개발 환경을 제공하는 도구입니다.
- 윈도우는 기본적으로 GCC 컴파일러를 제공하지 않기 때문에 리눅스의 환경을 빌려 설치하여야 합니다.
2) 설치과정
1. 링크 접속
https://www.msys2.org/?utm_source=chatgpt.com
MSYS2
Software Distribution and Building Platform for Windows
www.msys2.org
2. 설치

3. 컴파일러 설치 명령어 입력
$ pacman -S mingw-w64-ucrt-x86_64-gcc

4. 텍스트 에디터 설치
0) 텍스트 에디터란?
- 개발 입장에서 봤을 때 텍스트 에디터는 소스코드 작성 프로그램을 의미합니다.
- 가장 널리 알려진 텍스트 에디터 프로그램은 VSCode(비주얼 스튜디오 코드) 입니다.
- 다른 텍스트 에디터들도 있겠지만 확장성이 넓은 건 VSCode입니다.
- 따라서 VSCode 를 설치하여 진행하겠습니다.
1) 설치 과정
1. 링크
https://code.visualstudio.com/
Visual Studio Code - The open source AI code editor | Your home for multi-agent development
Visual Studio Code redefines AI-powered coding with GitHub Copilot for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.
code.visualstudio.com
2. 설치

4.1 확장팩 설치
0) 확장팩 설치 이유
- VSCode 기본 상태는 단순 메모장과 다른 것이 없습니다.
- 개발에 있어서는 자동완성, 오류표시, 디버깅 등 여러가지 기능이 필요하고, 이를 제공하는 것이 확장팩입니다.
1) 설치 과정
1. 설치

- 전 이미 설치가 되어 있어서 설치 버튼이 나오지 않는 것이고, 설치 버튼을 눌러주시길 바랍니다.
4.2 환경변수 등록
0) 환경변수 등록이유
- MSYS2 는 리눅스 컴파일러 환경을 윈도우에서 사용하기 위한 프로그램입니다.
- GCC 컴파일러 사용을 위해서는 MSYS2 프로그램(터미널)을 계속 열어줘야 하는데, 이는 너무 번거로운 과정이므로 윈도우 터미널에서 바로 사용 가능하도록 환경변수 등록이 필요합니다.
1) 환경변수란?
- 환경변수란 Windows 운영체제가 프로그램의 위치를 자동으로 찾게 해주는 변수라고 할 수 있습니다.
- 환경변수 등록을 해놓으면 운영체제는 굳이 경로를 지정하지 않아도 항상 그 위치를 기억하게 됩니다.
2) 환경변수등록 절차
1. 검색

2. 시스템 속성

3. 사용자 변수 수정

4. 시스템 변수 수정


5. VSCode 로 컴파일 해보기
// first.c
#include <stdio.h>
int main(void) /* a simple program */
{
int num; /* define a variable called num */
num = 1; /* assign a value to num */
printf("I am a simple "); /* use the printf() function */
printf("computer.\n");
printf("My favorite number is %d because it is first.\n",num);
return 0;
}
> 원본 소스코드
1. 컴파일 -> 링크

- gcc -c : 컴파일(목적파일인 obj 또는 o 생성)
- gcc -o : 링크(실행파일인 exe 생성)
2. 컴파일 + 링크

- gcc -o : 컴파일 + 링크
'C > Study' 카테고리의 다른 글
| C 언어 : 6. 루프 제어문 (0) | 2026.05.19 |
|---|---|
| C언어 : 5. 연산자 (0) | 2026.05.19 |
| C언어 : 4. 문자열과 입출력 (0) | 2026.05.18 |
| C언어 : 3. 데이터형 (0) | 2026.05.18 |
| C언어 : 2. 첫 프로그램으로 보는 구조 (0) | 2026.05.18 |
