✅ 1. C 언어의 등장과 발전
(1) 컴퓨터 프로그래밍과 프로그래밍 언어
[ 프로그래밍이란? ]
- 컴퓨터가 작업을 수행하기 위해 실행해야 하는 일련의 명령을 작성하는 것
[ 프로그래밍 언어 ]

- 프로그램을 작성하기 위해 사용되는 언어
(2) C 언어의 탄생
- 1972년 Bell 연구소의 Denis Ritchie가 시스템 프로그래밍을 위한 목적으로 개발한 프로그래밍 언어이다.
- 컴퓨터 기종간 호환성이 높은 고급 프로그래밍 언어
- 하드웨어 수준의 제어와 빠른 실행이 가능한 프로그램을 만들 수 있는 언어
- PDP-7 컴퓨터에서 어셈블리어로 구현한 Unix 커널을 C언어로 재작성 즉, C로 바꿔서 쉽게 보이게함.
- 다양한 컴퓨터에 Unix 운영체제를 이식할 수 있게 됨 ( 현대의 운영체제들은 대부분 Unix 기반으로 만들어져 있음. )
(3) C 언어의 특징
[ 범용 고급언어 ]
- 논리적인 처리 구조를 만들 수 있는 데이터 표현 및 흐름제어를 할 수 있음.
- 여러 가지 유용한 처리를 위한 표준 라이브러리를 제공함
- 프로그램의 이식성이 높음
[ 시스템 프로그래밍에 적잡한 언어 ]
- 운영체제, 장치관리자, 유틸리티 등을 만드는 것을 시스템 프로그래밍이라고 한다.
- 이 처럼 저급언어 수준의 특성이 있으며, 하드웨어 제어에 적합하며, 매우 빠른 실행 속도를 가지고 있음.
[ 간결한 문법 구조로 되어 있음 ]
- 문법 구조가 고급언어 수준으로 되어있어, 이해하기 쉬움
✅ 2. C 프로그램의 작성
(1) 프로그램 개발 단계

(2) C 프로그램을 실행 파일로 만드는 과정
[ 1. 코딩 ]
- C 언어의 문법에 맞게 코딩을 하는 과정이며, 이 과정을 통해 C 프로그램을 만들 수 있다. ( .c 확장자 )
[ 2. 컴파일 ]
- 목적파일(.obj) 변환 과정이며, 이 과정을 컴파일이라고 한다.
- 목적파일: 기계가 이해 할 수 있는 기계 형태의 코드를 의미한다. ( .obj 확장자 )
[ 3. 링크 ]
- 목적파일들을 묶어서 하나의 실행흐름으로 만드는 과정이 링크 과정임.
- 컴파일 된 목적파일, 라이브러리 등을 묶어서 실행 할 수 있는 코드의 형태로 만들어줌 ( .exe 확장자 )
[ 정리 ]
- 보통은 이 과정들은 IDE 를 통해 한 번에 이뤄짐. 하지만, 각각의 동작은 내부적으로 분리가 되어있음.
- 컴파일과 링크 과정은 합쳐서 빌드과정이라고 부름
- C 프로그램 개발 및 실행에는 소스 코드 편집기, 컴파일러, 링커, 디버깅 도구가 필요함. ( 통합개발환경 - IDE 라고 부름 )
✅ 3. C 프로그램의 구성
(1) C 프로그램의 기본 구조

[ C 프로그램 작성시의 일반적인 규칙 ]
- 반드시 하나 이상의 함수를 포함해야 한다.
- main() 함수가 반드시 존재해야 한다.
- 함수의 몸체는 시작과 끝을 알리는 중괄호 {}를 사용하여 블록으로 구성한다.
- 블록 안에는 변수 선언문, 치환, 연산, 함수호출 등의 명령을 기입한다.
- 선행처리 지시어(perprocessiong directives)를 제외한 문장의 끝에는 세미콜론(;)을 붙인다.
- 선행처리 지시어: C 프로그램 컴파일 전처리되는 명령어를 의미함.
(2) C 프로그램의 구성 요소
[ C 프로그램을 구성하는 토큰의 종류 ]
- 예약어(키워드): C에서 고유한 문법 및 의미가 정해진 단어 ( char, int, auth, volatile, for, if 등 )
- 명칭: 변수, 함수 등을 식별하기 위해 정의하는 이름 ( 변수명, 함수명 등 )
- 상수: 값이 변하지 않는 자료 (정수, 실수, 문자 등)
- 문자열: 큰따옴표로 묶인 문자 시퀀스
- 구두점: 고유한 문법 및 의미가 정해진 기호
- 설명문: 프로그램에 대한 주석 ex - /* */ , // ( 컴파일러는 설명문의 영역은 무시함 )
✅ 4. 에러와 경고
(1) 에러
- 프로그램을 정상적으로 빌드할 수 없는 문제가 포함된 소스 코드의 경우 에러메시지를 출력함
- C언어의 문법에 맞지 않는 형식의 문장을 사용한 경우
- 반드시 필요한 요소가 누락된 경우
- 에러 발생시 빌드가 중지되어 목적 코드 및 실행 파일이 생성되지 않음
- 에러 메시지를 확인하여 반드시 수정해야 함
(2) 경고
- 빌드를 진행할 수는 있지만, 문제 발생 가능성이 있는 소스 코드를 작성한 경우이다.
- 사용하지 않는 변수나 함수를 정의한 경우
- 오차가 발생할 수 있는 문장 등
- 경고가 있더라도 실행 파일은 생성되며, 프로그램을 실행할 수 있음
- 경고 메시지를 내용을 파악하여 필요한 경우에는 적절히 수정하며, 아무런 문제가 없는 경고는 무시할 수 있음
'공부 > ⚙️C' 카테고리의 다른 글
| [C언어] 함수와 기억 클래스(1) (0) | 2025.10.15 |
|---|---|
| [C언어] 선택 제어문과 반복 제어문 (0) | 2025.10.13 |
| [C언어] 입출력 함수와 연산자(2) (0) | 2025.10.03 |
| [C언어] 입출력 함수와 연산자(1) (0) | 2025.09.05 |
| [C언어] 자료형과 선행처리기 (1) | 2025.08.29 |
