본문 바로가기
D.evelop [CS]/한국방송통신대학교 컴퓨터과학과

[C프로그래밍] 1강 - C 언어의 개요

by Danne 2021. 3. 17.

1. C 언어의 정의, 역사, 특징

 

C 언어 : 프로그래밍 언어

 

  • 프로그래밍 언어
    • 사람과 컴파일러가 이해할 수 있도록 약속된 형태의 언어
    • ex) 기계어, 어셈플리어, C, C++, C#, JAVA, PHP 등

 

  • C 언어 : 컴파일러 필요
    • 컴파일러(compiler):  프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역해주는 번역기
      • 어셈블러(assembler) : 기호로 어셈블리 코드를 기계어로 번역하는 번역기
      • 인터프리터(interpreter) : 소스 프로그램을 한번에 기계어로 변환시키는 컴파일러와 달리 프로그램을 한 단계, 한 줄씩 기계어로 해석하여 실행하는 '언어처리 프로그램'
  • UNIX 운영체제 구현에 사용할 목적으로 개발
    • 컴퓨터 기종간 호환성을 가진 고급이면서, 하드웨어를 제어할 수 있는 새로운 언어가 필요
    • 어셈블리 언어로 된 UNIX 운영체제가 거의 C언어로 대체
  • 특징
    • 프로그램 이식성 높음
    • 간단한 문법표현으로 함축적인 프로그램 작성 용이
    • 저급언어 특성을 가진 고급언어
      • 저급언어 : 컴퓨터가 쉽게 알아들을 수 있는 언어
      • 고급언어 : 컴퓨터가 알아듣기 어려운 언어

 

 

 

2. C 프로그램의 작성 및 준비

 

프로그램 개발 단계 프로그램 목적정의 ▶ 프로그램 설계 소스코드 작성 컴파일/링크 프로그램 실행 테스트와 디버깅 유지보수

 

 

  • C프로그램 개발 단계
    • 에디터와 컴파일러 필요
    • C컴파일러 종류 : Turbo C/C++, Dev-C++, Visual C++, GCC, ...

(Dev-C 가 비교적 가볍다고 해서 설치함) 다운로드

 

 

 

 

완성 과정 : 코딩 ▶ 컴파일 링킹

  • 코딩 (coding) 단계
    • 소스코드를 작성하여 소스파일을 생성하는 과정
      • 소스코드 (source code) : 프로그램 안에 있는 명령어
    • .c 라는 확장자로 파일로 저장
    • ex)sample.c

 

  • 컴파일 (compile) 단계
    • 소스파일이 기계어로 바꿔 목적파일(object file)로 변환되는 과정
      • 목적 파일 : .obj의 확장자를 갖는 파일, 기계어들의 집합으로 이루어진 파일
    • .obg 확장자로 파일로 저장
    • ex) sample.c ▶ sample.obj

 

  • 링킹(linking) 단계
    • 목적파일(object file)을 실행파일(execution file)로 변환되는 과정
    • sample.obj / 다른 목적파일 / 라이브러리 등 ▶ 링커 ▶ sample.exe
      • 링커(linker) : 여러 목적파일과 라이브러리 파일을 연결해주는 도구

 

 

C 프로그램의 완성 과정

 

 

 

 

 

C프로그램의 작성과 실행 예

1. 소스코드 작성

 

2. 소스파일 생성

 

3. 컴파일

 

4. 실행결과

 

 

 

3. 프로그램 구성

 

C 프로그램의 기본 구조

/******************************
프로그램 전체에 적용되는 사항 기술
*******************************/
도입부


/******************************
main() 함수
- 가장먼저 호출
- 모든 프로그램에 반드시 존재
*******************************/
void main()
{
선언문
치환문
제어문
함수 호출
...
}


/******************************
main()함수에서 호출되는 함수를 정의
*******************************/
호출된 함수()
{
...
}

 

 

구성요소

예약어, 명칭, 상수, 연산자, 설명문

 

 

  • 예약어
    • 자료형 : char, int, float, short, long ...
    • 기억 : auto, static, extern, register ...
    • 제어 : if~ else, for, while, do~while ...
    • 기타 : main, sizeof, include ...

 

  • 명칭 규칙 (정보처리기사 시험에 자주나왔음...)
    • 영문자와 숫자 조합
    • 명칭의 첫 문자는 영문자나 언더바( _ )
    • 문자사이 공백, 예약어, 특수문자 사용 안됨
    • 특수문자 중 언더바( _ )는 사용 가능
    • 영문자 대/소문자 구별해서 사용
    • 명칭의 길이 : 컴파일러 따라 다름 (보통 32자까지 인식가능)

 

  • 상수 : 값이 불변인 자료
    • 수치 상수, 문자 상수, 문자열 상수

 

  • 연산자
    • 연산자를 사용하여 연산 수행
    • 다른 언어에 비해 연산자가 많음
    • =, - ,*, /, ++ ...

 

  • 설명문 : 프로그램에 대한 주석
    • 여러줄 사용시 /* 와 */
    • 한 즐짜리 //
    • 프로그램 실행에 영향을 주지 않음

 

 

 

4. 에러와 경고

  • 에러 (error)
    • 문법상 잘못된 경우 에러 메세지 출력
    • 반드시 수정해야 실행 파일이 만들어짐
  • 경고 (warning)
    • 경미한 실수시 발생
    • 큰 문제가 없지만 이식성에 불리하거나, 권장하지 않는 방법으로 소스 프로그램 작성시 발생
    • 무시해도 상관없고, 실행파일이 만들어짐

 

 

 

 

 

 

 

내용 출처

-      

한국방송통신대학교

"C프로그래밍" 강의 및 교재

 

 

 

반응형

댓글