본문 바로가기
C

C 언어의 개요

by curious week 2025. 8. 27.

01강 정리: C 언어의 개요

1. 프로그래밍과 프로그래밍 언어

  • 프로그래밍: 컴퓨터가 작업을 수행하기 위해 실행해야 하는 명령을 작성하는 행위.
  • 프로그래밍 언어의 세대
    • 1세대 (기계어): 0과 1로 구성된 명령, 하드웨어 직접 제어.
    • 2세대 (어셈블리어): 기계어를 기억하기 쉽게 기호화, 어셈블러 필요.
    • 3세대 (고급언어): 사람이 이해하기 쉬운 구조(C, C++, Java, Python 등).
      → 컴파일러 / 인터프리터를 통해 기계어로 변환.

2. C 언어의 등장과 발전

  • 탄생: 1972년, 벨 연구소 Dennis Ritchie가 Unix 운영체제 개발을 위해 고안.
  • 특징
    • 범용 고급언어: 이식성 높고 표준 라이브러리 제공.
    • 시스템 프로그래밍 적합: 하드웨어 제어 가능, 빠른 실행 속도.
    • 간결한 문법 구조.
  • 발전 과정
    • ALGOL60 (1960) → CPL (1963) → BCPL (1967) → B 언어 (1970) → C 언어 (1972).
    • 표준화: ANSI C(C89), ISO C(C90), C99, C11, C17, C23.

3. C 프로그램 개발 과정

  1. 목적 정의
  2. 설계
  3. 소스코드 작성
  4. 컴파일 → 목적파일 생성
  5. 링크 → 실행파일 생성
  6. 실행 및 테스트
  7. 유지보수
  • 필요 도구: 소스 편집기, 컴파일러, 링커, 디버깅 도구, IDE(예: Dev-C++, Visual Studio).

4. C 프로그램의 기본 구조

// 도입부: 헤더파일 포함 
#include <stdio.h>  // 입출력 요소에 관련된 헤더 파일

int add(int x, int y); // 함수 선언

int main() {           // main 함수: 프로그램의 시작점
    int i=10, j=20, sum;
    sum = add(i, j);
    printf("%d+%d=%d", i, j, sum);
}

int add(int x, int y) { // 사용자 정의 함수
    return x + y;
}
// 컴파일: make test make 설치가 안된 경우는 clang -o test test.c
// 실행: ./test
// 실행파일 삭제: rm ./test
  • 규칙
    • 반드시 main() 함수 포함.
    • 함수 몸체는 { } 블록으로 구성.
    • 명령문의 끝은 ;로 마무리.
    • 주석은 /* */ 또는 // 사용.

5. C 프로그램의 구성 요소 (토큰)

  • 예약어(keyword): int, if, for, return 등 미리 의미가 정해진 단어.
  • 명칭(identifier): 변수/함수 이름. 규칙:
    • 영문자, 숫자, _ 조합.
    • 첫 글자는 영문자/_이어야 함.
    • 공백/특수문자 불가.
    • 예약어 사용 불가.
  • 상수: 123, 'a', "KNOU".
  • 연산자: + - * / % 등.
  • 주석: 코드 설명용, 컴파일 시 무시됨.

6. 에러와 경고

  • 에러(error): 문법 오류, 필수 요소 누락 → 빌드 실패 (실행 파일 생성 불가).
    예) printf("Hello") 에서 ; 누락.
  • 경고(warning): 빌드는 되지만 문제 가능성 있음.
    예) 사용하지 않는 변수, 잘못된 함수 선언.
    → 가능하면 수정하여 경고 없는 코드 작성이 바람직함.

핵심 정리

  • C 언어는 범용 고급언어이자 하드웨어 제어가 가능한 시스템 프로그래밍 언어.
  • 프로그램은 소스 작성 → 컴파일 → 링크 → 실행 과정으로 만들어짐.
  • C 프로그램은 main() 함수를 반드시 포함하며, 예약어·식별자·상수·연산자·주석 등 토큰의 조합으로 구성됨.
  • 에러는 반드시 수정, 경고는 상황에 따라 무시 가능하지만 되도록 제거.