C언어 : 1. C 언어에 대하여

2026. 5. 17. 22:46·C/Study

안녕하세요.

금일부터 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
'C/Study' 카테고리의 다른 글
  • C언어 : 5. 연산자
  • C언어 : 4. 문자열과 입출력
  • C언어 : 3. 데이터형
  • C언어 : 2. 첫 프로그램으로 보는 구조
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
C언어 : 1. C 언어에 대하여
상단으로

티스토리툴바