본문 바로가기
공부정리 및 기록/[C언어] 프로그래밍

1. C언어의 개요

by 9월스튜디오 2020. 5. 27.

1.1 C언어의 정의

1) C언어 : 프로그래밍 언어

* 프로그래밍 언어

- 사람과 컴파일러(compiler)가 이해할 수 있도록약속된 형태의 언어

-기계어, 어셈블리어, C, C++, C#, JAVA, PHP 등

* 컴파일러

- 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역해줌.

- 컴파일러는 기계어와 C언어 사용가능.

* 어셈블러 : 기호로 표현된 어셈블러 코드를 기계어로 번역함.

* 인터프리터 : 소스 프로그램을 한번에 기계어로 변환시키는 컴파일러와 달리, 프로그램을 한 단계씩 해석하여 실행하는 언어처리 프로그램

1.2 C언어의 역사 및 특징

1) C언어의 역서

* Denis Ritchie가 개발 (1972)

* UNIX 운영체제 구현에 사용할 목적으로 개발.

- 컴퓨터 기종간 호환성을 가진 고급언어로, 하드웨어를 제어할 언어

* 어셈블리어로 되어있던 UNIX가 지금은 모두 C로 바뀜

2) 특징

* 프로그램 이식성이 높음

* 간단한 문법표현 및 함축적 프로그램 작성 용이

* 저급언어 특성을 가진 고급언어.(컴퓨터가 언어에 대한 이해도 높음)

1.3 프로그램 작성 및 준비

1) 일반적인 프로그램 개발단계

가. 프로그램 목적 정의

나. 프로그램 설계

다. 소스코드 작성

라. 컴파일/링크

마. 프로그램 실행

바. 테스트와 디버깅

사. 유지 보수

2)C프로그램 완성 과정

* 에디터와 컴파일러 필요

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

- C 컴파일러 : Visual C++, GCC, Dev-C++ 등등

가. 코딩 : 주어진 문제에 대한 설계를 방탕으로 소스코드를 작성하여 소스파일을 생성 (코드소스->파일)

([.c]확장자로 저장됨. sample.c)

나. 컴파일 : 소스파일이 목적파일(object file, 기계어,실행X)로 변환

(sample.c라는 파일을 컴파일러를 거쳐 sample.obj라는 확장자로 변환)

(에러체크 ----- 에러발생시 프로그램수정 후 컴파일로 돌아감 - 기계어로 번역됨)

다. 링킹 : 목적파일을 실행파일(execution file)로 변환

(여러개의 다른 sample.obj이 묶여서 라이브러리를 구성하여 링커로 실행파일 sample.exe 생성)

(에러체크 ----- 에러발생시 프로그램수정 후 컴파일로 돌아감)

라. 실행파일 생성 완료

*링커 : 여러개의 목적파일과 라이브러리 파일을 연결해주는 도구

* 목적파일 : .obj의 확자아를 갖는 파일, 기계어의 집합으로 이루어짐.

*소스코드 : 프로그램 안의 명령어

1.4 C프로그램 구성

1)C프로그램 기본구조

C프로그램 기본구조

- C 프로그램은 반드시 하나 이상의 함수를 포함해야 함.

- main()함수가 반드시 존재해야 함.

- 함수의 시작과 끝은 중괄호'{}' 사용.

- 중괄호 안에는 변수선언문, 치환문, 연산문, 함수 등의 명령 기입.

- 선행처리기를 제외하고는 문장의 끝에는 세미콜론(;)삽입.

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

가. 예약어 (reserved word)

- 자료형 관련 예약어 : cha, int, float, short, long, double, unsigned, union, eum, void...

- 기억 관련 예약어 : auto, static, extern, register...

- 제어 관련 예약어 : if~else, for, while, do~while, switch~case, break, continue, return...

- 기타 예약어 : main, sizeof, include.....

나. 명칭 (identifier)

* 명칭을 만들때의 규칙

- 영문자와 숫자의 조합으로 만들고 명칭의 첫 문자나 영문자는 밑줄(_)이여야 한다.

- 특수문자를 사용해서는 안된다 (언더바는 사용가능(_))

- 문자사이 공백 있으면 안되며 예약어 사용불가.

- 영어 대소문자 서로 구별하여 사용

- 명칭의 길이는 컴파일러에 따라 차이 있지만 일반적으로 32자까지 인식.

다. 상수 (constant)

- 수치상수, 문자상수, 문자열상수

라. 연산자 (operator)

- 다른 언어이 비해 연산자가 많다.

- 각종 연산 수행.

마. 설명문(주석문)

- 여러 줄에 걸친 설명문을 넣기 위해서는 /*와 */을 사용(시작과 끝에)

- 한줄짜리 설명문에는 보통 //을 사용

- 프로그램 어느 부분에도 위치가능.

- 2개 이상의 라인으로 계속될 수 있음.

1.5 에러와 경고

1) 에러

- 문법상 문제 발생시에 에러메세지 출력

- 반드시 수정해야 실행 가능.

2) 경고

- 경미한 실수 했을 때 메세지 발생

- 무시해도 실행파일 생성 가능한 경우가 많음

- 이식성 및 소스프로그램 호환문제시 발생

댓글