1. C 언어의 정의, 역사, 특징
C 언어 : 프로그래밍 언어
- 프로그래밍 언어
- 사람과 컴파일러가 이해할 수 있도록 약속된 형태의 언어
- ex) 기계어, 어셈플리어, C, C++, C#, JAVA, PHP 등
- C 언어 : 컴파일러 필요
- 컴파일러(compiler): 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역해주는 번역기
- 어셈블러(assembler) : 기호로 어셈블리 코드를 기계어로 번역하는 번역기
- 인터프리터(interpreter) : 소스 프로그램을 한번에 기계어로 변환시키는 컴파일러와 달리 프로그램을 한 단계, 한 줄씩 기계어로 해석하여 실행하는 '언어처리 프로그램'
- 컴파일러(compiler): 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역해주는 번역기
- 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
- 소스파일이 기계어로 바꿔 목적파일(object file)로 변환되는 과정
- 링킹(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프로그래밍" 강의 및 교재
반응형
'D.evelop [CS] > 한국방송통신대학교 컴퓨터과학과' 카테고리의 다른 글
[디지털논리회로] 2장 - 데이터 표현 (0) | 2021.03.24 |
---|---|
[디지털논리회로] 1장 - 컴퓨터와 디지털 논리회로 (0) | 2021.03.23 |
[운영체제] 1강 - 운영체제 개요 (0) | 2021.03.22 |
[컴퓨터의 이해] 1강 - 정보사회와 컴퓨터 (0) | 2021.03.15 |
댓글