31
1 Programming in C

Programming in C

  • Upload
    petra

  • View
    46

  • Download
    0

Embed Size (px)

DESCRIPTION

Programming in C. 목차. C 의 역사 왜 C 를 배워야 하는가 ? 프로그램 개발 과정 VC++ 의 이용 MinGW 의 이용 연습문제. 1. C 의 역사. C 의 탄생 유닉스 리눅스. 1. C 의 역사 : C 의 탄생. 1972 년 유닉스 (OS) 를 만들기 위해서 탄생 BCPL -> B -> C 유닉스를 디자인하던 켄톰슨이 절친한 친구 데니스 리치에게 유닉스를 위한 언어 요청 데니스리치가 BCPL 을 추천 켄톰슨이 BCPL 을 B 로 발전시킴 - PowerPoint PPT Presentation

Citation preview

Page 1: Programming in C

1

Programming in C

Page 2: Programming in C

목 차1. C 의 역사2. 왜 C 를 배워야 하는가 ?3. 프로그램 개발 과정4. VC++ 의 이용5. MinGW 의 이용6. 연습문제

Page 3: Programming in C

3

1. C 의 역사• C 의 탄생• 유닉스• 리눅스

Page 4: Programming in C

4

1. C 의 역사 : C 의 탄생• 1972 년 유닉스 (OS) 를 만들기 위해서 탄생• BCPL -> B -> C

– 유닉스를 디자인하던 켄톰슨이 절친한 친구 데니스 리치에게 유닉스를 위한 언어 요청

– 데니스리치가 BCPL 을 추천 – 켄톰슨이 BCPL 을 B 로 발전시킴 – 데니스리치가 B 를 C 로 발전시킴

BCPL

B

C

Page 5: Programming in C

5

1. C 의 역사 : 유닉스• 유닉스 (UNIX) 는 초창기 ‘유닉스’가 아닌 ‘멀틱스 (Multi

cs) 라고 불림– 멀틱스 (OS 의 일종 )– 다중 CPU, 메모리 공유 , I/O 자원 공유 , 가상메모리 , 다중

언어 지원 , 보안 , 관계형 데이터 베이스 , 다중 사용자의 기능을 구현하려고 시도함

– 그 당시의 기술로는 구현 불가능하여 실패함 .

• 멀틱스가 실패하자 이를 안타까워 했던 켄톰슨이 PDP-7 에 멀틱스를 이식하고 조금씩 발전시켜 나감 .– 멀틱스는 이때부터 유닉스라고 불림– 유닉스는 처음에 어셈블리로 작성되었음 ( 현재 유닉스는 9

0% 가 C 언어 /10% 가 어셈블리어로 구성됨 )

Page 6: Programming in C

6

1. C 의 역사 : 리눅스• 1989 년 핀란드 헬싱키대학에 재학 중이던 리누스

토발즈 (Linux Torvalds) 에 의해서 만들어진 공개 OS• 초창기 리눅스는 주로 개인용 컴퓨터에서 사용되었음• 소스코드는 완전무료로 공개되었으며 수 많은

프로그래머에 의해서 계속 업그레이드 되고 있음– 리눅스는 GNU(Gnu Not Unix) 를 표방함– 무료배포와 소스 완전 개방에 의해서 대학과 개발자에게

급속히 확산됨• 유닉스와 유사한 파일 시스템을 가지고 있으며 많은

변종이 존재함

Page 7: Programming in C

7

2. 왜 C 를 배워야하는가

• C 의 유용성• C 의 장점• C 의 단점

Page 8: Programming in C

8

2. 왜 C 를 배워야하는가 : C 의 유용성

• 실행 속도가 빠름– 어셈블리어를 제외한 여타의 언어에 비해서

상대적으로 높은 속도를 냄

• 실행 파일의 크기가 작음– 임베디드 시스템에서 실행파일의 크기는 상당히

중요한 요소임

• 작성하기 쉬움– 어셈블리어보다 상대적으로 배우거나 작성하기 쉬움

Page 9: Programming in C

9

2. 왜 C 를 배워야하는가 : C 의 장점

• 실행속도가 빠름– 다른 언어에 비해서 실행 속도가 높음

• 실행파일의 크기가 작음– 다른 언어에 비해서 실행파일의 크기가 작음– 일반적인 상황에서는 실행파일의 크기는 문제가 되지 않지만 임베디드

시스템에서는 중요한 요소가 됨

• 하드웨어를 다루기가 쉬움– 하드웨어를 다룰 수 있는 많은 기능을 가짐– 하드웨어를 제어하는 가장 강력한 언어는 어셈블리어이지만

어셈블리어는 배우거나 작성하기가 까다로움

• 다른 플랫폼으로 이식하기 쉬움– 이미 작성된 프로그램을 다른 환경 ( 유닉스 , 윈도우 , 리눅스 ) 으로

이식하기가 쉬움

Page 10: Programming in C

10

3. 왜 C 를 배워야하는가 : C 의 단점

• 배우기가 어려움– 어셈블리어보다는 쉽지만 다른 언어에 비해서는 배우기가 어려운 편임

• 초보자가 작성하기 어려움– 세세한 작업을 프로그래머가 모두 챙겨야 함 - 메모리 할당 및 해제를

자동으로 해주지 않음– 알고리즘에 문제가 발생하면 에러를 잡기가 어려움– 포인터 부분을 프로그램 한 후 문제가 발생하면 문제점을 찾기가

어려움

• 그래픽 작업이 어려움– C 는 그래픽과 극을 달림– 그래픽이 필요하면 다른 언어의 힘을 빌려야 함

Page 11: Programming in C

11

3. 프로그램 개발과정• 소스코드 생성

– 에디터 (Editor) 를 이용하여 프로그램 작성

• 컴파일러 실행– 목적코드를 생성 ( 실행파일의 중간 단계 )

• 오류 수정– 컴파일러를 수행한 후 코드의 오류를 수정

• 링커 실행– 실행파일을 생성하는 단계– 여러 파일 ( 목적코드 ) 을 하나로 합치는 의미를 가지고 있음

• 실행파일 수행

Page 12: Programming in C

12

3. 프로그램 개발과정소스 코드소스 코드

컴파일러(Compiler)

컴파일러(Compiler)

링커(Linker)링커

(Linker)

목적 코드(Object code)

목적 코드(Object code) 라이브러리 코드라이브러리 코드

실행 코드실행 코드

시동 코드(start-up)

시동 코드(start-up)

Page 13: Programming in C

13

3. 프로그램 개발과정프로그램의 설계

자료구조설계 알고리즘 설계

struct Student{ int i; char name[10];}

for ( int j=0 ; j <= 10 ; j++){ …….}

Source Code 생성

Library

테스트 & 디버깅

최종 프로그램

Page 14: Programming in C

14

3. 프로그램 개발과정 : 소스코드 작성

• 소스코드# include <stdio.h>

main(){

printf(“Welcome to the C World.”);}

C 의 소스코드는 .c 로 끝남위의 프로그램은 화면에 ‘Welcome to the C world.’ 가 출력됨

Page 15: Programming in C

15

3. 프로그램 개발과정 : 컴파일러 실행

• 컴파일러를 이용하여 목적 (Object) 코드를 생성

• 컴파일– 사람이 이해하는 소스코드를 기계가 이해할 수 있는 기계어로 번역하는 과정

– 컴파일을 수행하는 행위자를 ‘컴파일러’라고 함– 컴파일을 수행하는 도중 발생되는 에러나 문제점을 디버거 (Debugger) 의 의해서 해결하기도 함

• 목적 (Object) 코드– 컴파일러에 의해서 기계어가 이해할 수 있는 상태로 변환된 파일– 일반적으로 .o 가 생성됨– 실행파일을 생성하는 중간단계

Page 16: Programming in C

16

3. 프로그램 개발과정 : 링커 , 실행파일 실행

• 링커 실행– 목적코드를 실행파일로 변환

• .o 로 구성된 목적코드를 하나의 실행파일로 만들어 냄

– 다수의 목적코드를 하나로 결합• 일반적으로 다수의 목적코드를 링커가 하나로 합쳐서

실행파일로 만들어 냄

• 실행파일 실행– 윈도우 환경 : *.exe로 생성– 유닉스 환경 : a.out 로 생성

Page 17: Programming in C

17

4. VC++ 이용• VC++ 실행• 프로젝트 생성• sample.c 생성• sample.c 편집• 프로그램 작성• 컴파일 , 링크 , 실행

Page 18: Programming in C

18

4. VC++ 이용 : VC++ 실행

Page 19: Programming in C

19

4. VC++ 이용 : 프로젝트 생성

프로젝트 이름 지정

Page 20: Programming in C

20

4. VC++ 이용 : sample.c 생성

sample.c 이름 지정

Page 21: Programming in C

21

4. VC++ 이용 : sample.c 편집

sample.c를 두번 클릭하면 하드 디스크에 파일이

생성되고 edit 할 수 있도록 메인 창이 활성화 된다.

Page 22: Programming in C

22

4. VC++ 이용 : 프로그램 작성

프로그램을 작성한다.

puts(“Welcome to the C world”);

Page 23: Programming in C

23

4. VC++ 이용 : 컴파일 , 링크 , 실행

컴파일버튼

링크버튼실행버튼

puts(“Welcome to the C world”);

Welcome to the C world

Page 24: Programming in C

24

5. MinGW 이용

• MinGW: Minimalist GNU for Windows• MinGW Developer Studio 사용하는 방법 :• http://www.parinyasoft.com/ 또는• http://www.simtel.net/product.php%5Bid%5D74844%5BSiteID%5Dfilebasket

Page 25: Programming in C

25

5. MinGW 이용

Page 26: Programming in C

26

5. MinGW 이용File new Project name 을

입력

Project 폴더를 지정

Page 27: Programming in C

27

5. MinGW 이용

Page 28: Programming in C

28

5. MinGW 이용

Page 29: Programming in C

29

연습문제 1

1. C 의 장점과 단점에 대해서 설명하시오 .

2. 컴파일과 링크에 대해서 설명하시오 .

3. 소스 프로그램 , 오브젝트 ( 목적 ) 프로그램 , 실행 프로그램의 차이점을 설명하시오 .

Page 30: Programming in C

30

연습문제 2

1. 자신의 이름을 출력하는 프로그램을 작성하시오 .

Page 31: Programming in C

31

연습문제 3

1. 자신의 이름을 출력하는 함수를 작성하고 오브젝트 파일을 생성하시오 .

2. main() 함수와 자신의 이름을 출력하는 함수를 링커로 결합하여 하나의 실행파일을 생성하시오 .