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) 산업용 소프트웨어
2절 C프로그램의 작성 및 준비
[프로그램 개발단계]
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가 나오는 경우 |
3절 C프로그램의 구성
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’로 생성
'[시험] 독학사 2020 전공기초' 카테고리의 다른 글
[독학사][C프로그래밍] 06 배열과 포인터 (0) | 2020.04.28 |
---|---|
[독학사][C프로그래밍] 05 함수와 기억클래스 (0) | 2020.04.28 |
[독학사][C프로그래밍] 04 제어문 (0) | 2020.04.28 |
[독학사][C프로그래밍] 03 입 ∙ 출력함수와 연산자 (0) | 2020.04.28 |
[독학사][C프로그래밍] 02 자료형과 선행처리기 (0) | 2020.04.28 |