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장 자료형과 선행처리기( 상수,변수)
'방송통신대학 > C 프로그래밍' 카테고리의 다른 글
제 3강 입출력함수 ( scanf(), putchar(), gets(), puts() 예시 ) (0) | 2020.05.22 |
---|---|
제 3강 입출력함수(입출력함수 정리, printf () 예시 ) (0) | 2020.05.21 |
제2장 자료형과 선행처리기( 상수,변수) (0) | 2020.05.11 |
C프로그래밍 기말시험 기출문제(정답 포함) (0) | 2020.04.22 |
10강. 배열과 포인터(3) 6.2.4 포인터와 배열 (0) | 2020.04.22 |