반응형
SMALL

1.1 c 언어의 정의

c 언어는 프로그래밍 언어이며, 

프로그래밍 언어란 인간과 컴퓨터의 대화에 사용되는 의사소통 수단이다.

 

컴파일러 : 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역 해주는 번역기

 

(사람)  >> c언어로 전달 >>  (컴파일러)  >> 기계어로 전달 >>  (컴퓨터 )

 

 

프로그래밍 언어는 c언어와 같이 인간이 이해하기 쉬운 언어에 가까울수록 고급언어(high-level-language) 라고하며,

어셈블리어 언어와 같이 컴퓨터가 이해하기 쉬운언어에 가까울수록 저급 언어(low-level-language) 라고 한다.

 

 

 

1.2 C 언어의 역사

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

 

 

c언어의 특징

-프로그램 이식성이 높다.

- 간단한 문법표현으로 함축적인 프로그램 작성이 용이하다.

- 저급언어 특성을 가진 고급 언어이다.

 

 

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

1.3.1. 프로그램 개발 단계

 

프로그램 목적 정의   >> 요구분석과 시스템 분석을 통하여 프로그램이 가져야 할 기능 정의

    ↓

프로그램 설계  >> 분석된 기능을 처리할 수 있도록 프로그램 구조를 설계

   

소스 코드 작성  >> 작성된 프로그램 설계를 기반으로 에디터를 사용하여 작성

   

컴파일/ 링킹  >> 소스 코드를 실행 가능한 코드로 변환하고 문법 검사

   

프로그램 실행  >> 프로그램 실행

   

테스트와 디버깅  >> 에러를 검사하고 디버깅

   

유지보수  >> 사용중 발생되는 에러나 추가적 변셩 사항을 처리

 

 

프로그램 개발 단계

- 에디터(editor)와 컴파일러 필요

 > 에디터 : 소스코드를 작성하여 저장할 수 있도록 도와주는 도구

 > c 컴파일러 : devc++, visual c++ ......

 

 

 

c프로그램의 완성 과정

 

코딩  >>>  컴파일  >>> 링킹 

 

코딩단계 

주어진 문제에 대한 설계를 바탕으로 소스코드를 작성하여 소스파일을 생성하는 과정

 

컴파일 단계

소스파일이 목적파일로 변환되는 과정

목적파일 : 컴퓨터가 이해할 수 있는 기계어들의 집합으로 변경된 상태

 

링킹 

목적파일을 실행파일로 변환하는과정

 

 

 

 

1.4 C 프로그램의 구성

1.4.1 프로그램의 기본 구조

(1) 도입부 

프로그램의 시작 부분 

- 프로그램 설명

- 선행 처리를 위한 다른 파일  포함이나 매크로(macro) 정의

- 프로그램 전체에 사용되는 전역변수 선언

- 사용자 함수 원형 선언

 

(2) main () 함수 

주어진 문제를 분리하여 해결할 수 있도록 함수를 제공한다. 그 중 main 함수는 핵심 부분으로 실행 파일에는 반드시 1개의 main 함수가 존재해야한다. main 함수는 실행시 가장 먼저 찾게 되는 c 프로그램의 시작 위치를 나타낸다.

main 함수의 실행 후 운영체제에 반환하는 값이 없을 경우에는 void main 과 같은 형식을 취한다.

함수는 main 함수와 같이 사용자가 직접 작성하기도 하고, 이미 작성된 함수를 사용하기도한다.

 

(3) 호출된 함수 ()

 main() 함수에서 호출되는 함수에 대한 정의

 

 

 

1.4.2  C 프로그램의 구성 요소

 

예약어 : int, char, if, for .....

 

명칭 : 변수, 배열, 함수, ....... 

 

상수 : 값이 불변인 자료

연산자 : =, -, *, /, ++, .......

 

설명문 : 프로그램에 대한 주석 

 

(1) 예약어 (reserved word) 

c언어에서 미리 정의되어 있는 의미 있는 단어

프로그램에서 특정한 의미를 가지고 있기 떄문에 함부로 사용하면 안된다.

- 자료형 : char, int, float, short, long, double, unsigned, union, enum, void

- 기억 : auto, static, extern, refister

- 제어 : if~else, for, while, do~while, switch~case, break, continue, return

- 기타 : main, sizeof, include,.......

 

(2) 명칭 

프로그램을 작성하다 보면 변수명, 일련의 명령을 수행하는 자료 등 필요에 따라 이름을 만들어 사용한다. 이러한 이름을 나타내는 문자열을 사용자 정의 명칭이라하고 정해진 규칙이 있따.

- 영문자와 숫자의 조합으로 만든다.

- 명칭의 첫 문자는 영문자나 밑줄(_)이어야한다.

- 특수문자를 사용해서는 안된다(단, 밑줄은 가능)

- 문자사이에 공백이 있어서는 안된다.

- 예약어를 사용할 수 없다.

- 영문자 대문자와 소문자는 서로 구별하여 사용한다.

 

(3) 상수

수치상수, 문자 상수, 문자열 상수 가 있다.

 

(4) 연산자 ( operator )

각종 연산을 수행하며, 다른 언어에 비해 많은 연산자가 준비 되어 있어 다양한 연산을 효과적으로 수행 

 

(5) 설명문

- 여러 줄에 걸친 설명문을 넣으려면 /* 와 */ 를 사용

- 한줄 짜리 설명문 // 사용

- 어느 부분에도 위차 가능

- 2개 이상의 라인으로 계속 가능

 

 

1.5 에러와 경고

에러(error)

- 문법상 잘못된 경우 에러 메시지를 출력

- 문법에 맞지 않는 형식의 사용이나 필요한 지정이 빠진 경우 등에서 발생 

- 에러 메시지를 확인하며 반드시 수정하여야 한다.

 

경고(warning)

- 경고는 일단 컴파일은 가능한 경미한 실수를 했을때 발생

- 큰문제는 없지만 이식성에 불리하다거나 권장하지 않는 방법으로 소스 프로그램을 작성했을 때도 발생

- 경고 메시지의 내용을 파악하여 타탕한 지적이라면 수정, 그렇지 않다면 무시하여도 상관없다.

 

 

 

2020/05/11 - [방송통신대학/C 프로그래밍] - 제2장 자료형과 선행처리기( 상수,변수)

 

반응형
LIST

+ Recent posts