[C언어] C 언어의 개요

2025. 8. 18. 02:09·공부/⚙️C

✅ 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
'공부/⚙️C' 카테고리의 다른 글
  • [C언어] 선택 제어문과 반복 제어문
  • [C언어] 입출력 함수와 연산자(2)
  • [C언어] 입출력 함수와 연산자(1)
  • [C언어] 자료형과 선행처리기
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (233)
      • 방송통신대학교 (87)
        • ⚙️컴퓨터의 이해 (11)
        • 💻컴퓨터과학 개론 (15)
        • 🔢자료구조 (14)
        • 🧬알고리즘 (10)
        • ⚙️운영체제 (14)
        • 🕸️이산수학 (11)
        • 🌍유비쿼터스 컴퓨팅 (11)
        • 🖥️컴퓨터과학과 (1)
      • 공부 (72)
        • 📚백엔드 공부 (6)
        • ☕Java (23)
        • 🌳Spring (13)
        • ⚙️C (12)
        • ⚡Python (15)
        • JavaScript (1)
        • 🛢️Database (0)
        • Algorithm Problem Solving (2)
      • 네트워크 (7)
        • 📜HTTP (7)
      • 스파르타코딩클럽 (64)
      • 정보 (2)
      • 정리가 필요한 글 (1)
  • 블로그 메뉴

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

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    방송대
    운영체제
    spring
    파이썬
    컴퓨터과학과
    자바
    Java
    알고리즘
    그래프
    이산수학
    컴퓨터과학 개론
    함수
    컴퓨터의 이해
    방송통신대학교
    자료구조
    방통대
    Python
    C언어
    배열
    유비쿼터스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
[C언어] C 언어의 개요
상단으로

티스토리툴바