1절  C언어의 역사 및 특징

1.      컴퓨터 프로그램의 개념

n  개발자 도구, 개발환경(IDE) : 프로그래밍 하는 도구

n  프로그래머 : 프로그래밍을 하는 사람

n  프로그래밍 언어 : 프로그래밍 하는 방식 또는 절차

 

2.       C언어의 개요

1)    C언어의 탄생

u  켐 톰슨과 데니스 리치가 1972년 벨 연구소에서 유닉스 운영 체제에 사용하기 위해 개발한 프로그래밍 언어

u  데니스 리치가 B언어를 개선해서 C언어를 만듦

2)    C언어와 UNIX 운영체제

u  UNIX의 기반이 되는 C언어

 

3.      C언어의 특징

n  시스템 프로그래밍 언어! -> 운영체제, 언어처리계, 편집기, 디버깅 등 소프트웨어 작성을 지원하는 프로그램

n  고급언어이면서 저급언어인 양면성을 가짐

저급언어 측면 : 시스템 ∙ 하드웨어를 제어

고급언어 측면 : 사용자 ∙ 소프트웨어 중심

1)     이식성이 뛰어남

2)     범용 프로그래밍 언어

3)     구문이 간결하고 명확

4)     C언어 익히면 다른 프로그래밍 언어도 쉽게 이해 가능

4.      C언어의 사용분야

1)    운영체제

u  UNIX 만들기 위해 탄생한 언어

u  UNIX기반으로 만들어진 리눅스, 윈도우, 솔라리스. 매킨토시 등이 C언어로 만들어짐

u  휴대폰, PDA, 셋톱박스의 리얼타임 운영체제도 C언어로 주로 개발

2)    컴파일러

u  C언어로 개발할 수 있게 해주는 컴파일러들은 Xcode로 작성됨

3)    게임

u  DirectX, openGL

4)    유틸리티와 상용 소프트웨어

5)    산업용 소프트웨어

 

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

[프로그램 개발단계]

1.     프로그램의 목적을 정의 (요구사항 분석)

n  개발할 프로그램의 내용과 성격을 파악하고 프로그램 사용자가 요구하는 사항 분석

n  프로그램의 입력 : 데이터

n  프로그램의 결과 : 정보

u  결과화면 구성

2.     프로그램의 설계 (알고리즘 설계 단계)

u  알고리즘 : 주어진 문제를 풀기 위한 방법을 순서대로 표현

u  순서도나 의사코드를 이용

3.     프로그램 코딩 (coding)

n  C컴파일러가 알아들을 수 있는 C문법형식으로 작성

n  소스 코드(source code) : 코딩 과정을 마친 프로그램 (=소스 파일, 소스 프로그램)

4.     소스 코드의 번역 (compiling)

n  고급 언어로 작성한 소스 프로그램을 기계어로 번역하는 작업

n  컴파일러 프로그램이 번역을 수행

n  소스 프로그램 (C언어) à 컴파일러 à 오브젝트 프로그램 (기계어)

5.     실행파일 생성 (linking)

n  링킹 : 여러 소스 프로그램 파일들을 하나로 합치고 라이브러리와 관련된 프로그램 코드를 실제 오브젝트 프로그램 안에 포함시키는 과정

6.     프로그램 실행 (execution)

n  링킹 과정을 마친 *.exe 파일은 로더(loader)에 의해 주기억장치에 적재된 후 CPU에 의해 실행됨

7.     테스트와 디버깅

n  버그 : 프로그램이 제대로 실행되는 것을 방해하는 오류

n  디버깅 : 버그를 찾아서 제거하는 작업

n  프로그램 오류의 종류와 예

종류 (발생 시점)

컴파일 시간 오류

(컴파일 과정)

l  result 란 변수 선언하지 않고, result=0;과 같이 변수를 사용한 경우

l  int result 선언문 뒤에 ;를 빠트린 경우

링커 오류

(링킹 과정)

l  main 함수의 이름을 잘못 지정해서 main함수가 프로그램에 없는 경우

실행 시간 오류

(실행 과정)

l  나누기 연산에서 0으로 나누기를 시도한 경우

논리 오류

(알고리즘 설계 과정)

l  무한반복이 되어 프로그램 실행이 끝나지 않는 경우

l  a, b, c 중 실제 제일 큰 값은 c인데 제일 큰 값의 결과가 a가 나오는 경우

 

3C프로그램의 구성

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

1)    전처리기 지시영역

u  컴파일 하기 전 문법 외적인 작업을 먼저 처리하는 과정

파일 포함

문자열 치환

u  #으로 시작

u  ; 붙이지 않음

u  연산 없이 치환만 이루어짐

2)    main함수 (없으면 링킹 과정에서 오류)

u  콘솔 응용 프로그램을 실행하면 처음으로 실행되는 함수

u  반드시 존재

u  프로젝트에 하나만 존재

(1)   함수의 본체 (body) : { }로 묶은 내용 – block

본체 외에 한 개 이상의 문장을 묶을 때 사용

(2)   변수 선언 : 실행부 이전에 변수 선언문이 있어야 함

(3)   자료 입력 : 프로그램에 필요한 값 입력

(4)   자료 처리 : 처리할 명령문 모아둠

주어진 자료로부터 필요한 정보를 얻기 위한 처리과정이 C언어에 맞게

(5)   자료 출력 : 실행 결과를 형식에 맞추어 출력장치에 표시

(6)   함수 결과값 반환 : main함수의 결과값을 main함수를 호출했던 곳으로 돌려줌

(7)   사용자 정의 함수

[C프로그래밍 작성 시 규칙]

u  반드시 하나 이상의 함수 포함

u  Main() 함수 반드시 존재하고 한 번만 쓰임

u  중괄호 { }이용해 함수의 시작과 끝 알리고 그 안에 명령을 기입

u  문장의 끝에 ; 세미콜론 사용하여 각 문장 구문. 단 선행처리기 끝에는 ; 없음

u  주석은 어느 위치든 추가 가능

 

2.     C프로그램의 구성요소

1)    예약어 (키워드)

u  명령어나 의미 있게 사용되는 단어들

2)    식별자

u  이름!

u  영문 대소문자, 숫자, _(언더스코어)만 사용 가능

u  키워드가 식별자가 될 수 없음

u  _은 특수문자가 아님

u  명칭의 첫 글자는 반드시 영문자나 _을 사용 (숫자 X)

u  문자 사이에 공백 및 예약어 불가

u  모든 변수는 사용하기 전 반드시 정의

u  영문자 대문자와 소문자는 서로 구별됨

u  명칭의 길이는 일반적으로 32자까지 지원

u  $ 사용 불가 (Visual Studio 2010이상 버전)

3)    상수

u  변환되지 않는 값. 재정의가 불가능

4)    연산자

u  선언된 변수에 값을 넣어 값을 계산하는데 사용하는 기호

5)    주석 (설명문)

u  /* */ : C , C++의 주석기호. /* */ 사이의 구문이 무시됨

u  // : C++의 주석기호. 행 뒤쪽이 무시됨. C에서도 사용 가능

3.     Visual Studio 2015 설치와 사용방법

1)    소스파일 (*.c or *.cpp) : 프로젝트 폴더 안에 생성

2)    실행파일 (*.exe) : 솔루션 폴더의 debug 폴더에 프로젝트이름.exe’로 생성

+ Recent posts