📚C 언어 개요

프로그래밍 언어란 인간과 컴퓨터의 대화에 사용되는 의사소통 수단이다. 컴퓨터는 0 또는 1로만 이뤄진 기계어만 이해할 수 있어서 사람과 의사소통하기 위해서 중간에 통역가가 필요하다. 이 통역가를 컴파일러라고 하는데 컴파일러와 사람이 대화할 수 있는 수단이 프로그래밍 언어이다.

프로그래밍 언어에서 C 언어와 같이 인간이 이해하기 쉬운 언어를 고급 언어라고 하고, 어셈블리어와 같이 기계어에 가까울수록 저급 언어라고 한다. C 언어는 고급 언어지만 하드웨어 제어가 가능하기 때문에 저급 언어의 특성을 지닌 고급 언어라고 할 수 있다.




📚C 언어 역사 및 특징

📄C 언어 역사

C 언어는 1972년 미국 벨 연구소의 데니스 리치가 개발한 시스템 기술 언어입니다. 유닉스 운영체제 개발에 사용할 목적으로 만들어졌다.


📄C 언어 특징

  • 논리적이며 구조적인 시스템 프로그래밍 언어
  • 하드웨어 제어 가능
  • 프로그램 이식성이 높음
  • 간략한 문법 표현으로 함축적인 프로그램 작성 용이
  • 저급 언어 특성을 가진 고급 언어




📚C 프로그램 작성 및 준비

📄프로그램 개발 단계

프로그램이란 특정한 작업을 수행하도록 하는 명령어들의 집합으로 효율적인 프로그램을 작성하기 위해 논리적인 프로그램 개발 단계가 필요하다.

프로그램 개발 작업을 수행하는데 있어 에디터와 컴파일러라는 프로그램이 반드시 필요하다. 에디터는 소스 코드의 작성, 수정, 저장 등을 도와주는 도구이다. 컴파일러는 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 변환해주는 번역 프로그램이다.

  1. 프로그램 목적 정의
  2. 프로그램 설계
  3. 소스 코드 작성
  4. 컴파일 / 링킹
  5. 프로그램 실행
  6. 테스트와 디버깅
  7. 유지 보수


📄C 프로그램 완성 과정

  1. 소스 파일의 생성
    에디터를 이용하여 소스 코드를 작성한다. C 프로그램 안에 있는 명령어들을 소스 코드라고 한다. 소스 코드들은 컴파일 하기 전에 파일 형태로 저장해야 한다. C 프로그램은 보통 .c 확장자로 파일을 저장한다.

  2. 소스 파일의 컴파일
    소스 파일을 컴퓨터가 이해할 수 있도록 기계어로 변환하는 과정이다. 컴파일러가 소스 파일을 컴파일하면 목적 파일이 만들어진다. 목적 파일은 .obj라는 확장자를 가진다. 목적 파일은 컴퓨터가 이해할 수 있는 기계어들의 집합이지만 그 자체로는 의미를 갖지 못하고 링킹이라는 과정을 통해야만 한다.

  3. 실행 파일의 생성(링킹)
    컴파일된 목적 파일들을 라이브러리 파일과 연결하여 실행 파일을 만드는 과정이다. 링커라는 도구가 이런 역할을 하는데 요즘 대부분의 컴파일러들은 링커 기능까지 같이 제공한다. 링킹 과정을 거치면 .exe 확장자를 가지는 실행 파일이 만들어진다.




📚C 프로그램의 구성

📄프로그램 기본 구조

  1. 도입부
    • 프로그램 설명
    • 선행 처리 파일 포함, 매크로 정의
    • 전역변수 선언
    • 사용자 함수 원형 선언
  2. main()함수
    C 프로그램은 반드시 1개의 main 함수가 존재해야 한다.

  3. 호출된 함수()
    필요한 경우 함수를 호출해서 사용하게 된다. 함수는 함수의 시작과 끝을 알리는 중괄호를 사용해야 한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 도입부
#include <stdio.h>

int add(int x, int y);

// main 함수
void main()
{
  int i, j, sum;

  i = 10, j = 20;
  sum = add(i, j);

  printf("%d + %d = %d", i, j, sum);
}

// 호출되는 함수
int add(int x, int y)
{
  int sum;

  sum = x + y;

  return sum;
}



📄C 프로그램 구성 요소

  1. 예약어
    • 자료형: char, int, float, short, long, double, unsigned, union, enum, void
    • 기억: auto, static, extern, register
    • 제어: if~else, for, while, do~while, switch~case, break, continue, return
    • 기타: main, sizeof, include 등등

  2. 명칭
    • 영문자와 숫자 조합
    • 첫 문자는 영문자나 밑줄로 시작
    • 특수문자는 사용 불가능
    • 문자 사이에 공백 사용 불가능
    • 예약어 사용 불가능
    • 영문자 대문자와 소문자 구별하여 사용

  3. 상수
    C 언어는 수치 상수, 문자 상수, 문자열 상수가 있다.

  4. 연산자
    C 언어는 연산자를 이용하여 다양한 연산을 수행한다.

  5. 설명문(주석)
    • 여러 줄의 주석을 사용하려면 /*와 */를 사용
    • 한 줄짜리 주석은 //사용
    • 어느 부분에도 사용 가능




📚에러와 경고

📄에러

컴파일러는 문법상 문제가 있어 컴파일 할 수 없는 경우 에러 메시지를 출력한다. 정상적으로 컴파일하기 위해 반드시 에러를 수정해야 한다.


📄경고

코드 내용이 의심스러워 보이기는 하지만 컴파일이 가능한 경우에 발생한다. 현재 큰 문제는 없지만 C 언어 문법에서 권장하지 않는 방법으로 소스 코드를 작성했을 때 경고 메시지가 출력된다. 경고를 무시해도 실행 파일을 생성할 수 있다.

Tags:

Categories:

Updated:

Leave a comment