Presentation is loading. Please wait.

Presentation is loading. Please wait.

Part 02 C 언어 개요 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 woogyun@pusan.ac.kr로 연락 주세요.

Similar presentations


Presentation on theme: "Part 02 C 언어 개요 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 woogyun@pusan.ac.kr로 연락 주세요."— Presentation transcript:

1 Part 02 C 언어 개요 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 연락 주세요.

2 이 장의 내용 C 언어 소개 간단한 C 프로그램 Microsoft Visual C++ IDE C 프로그램의 이해
명령줄 프로그래밍

3 2.1 C 언어 소개

4 C 언어 유래 1972년 Dennis Ritchie가 설계함 C 언어에 직접 영향을 준 언어들 C 언어의 특징
UNIX 운영체제 개발에 사용됨 C 언어에 직접 영향을 준 언어들 Algol  CPL  BCPL  B  C C 언어의 특징 구조화된 언어로서 모듈별 설계가 가능하다. 이식성이 높다. — 다양한 하드웨어에서 사용 가능 효율적이다. — 처리속도가 빠름 다양한 연산자를 제공한다. 동적 메모리 관리가 가능하다. 믿거나 말거나… C 언어는 구형 컴퓨터에서 게임을 하기 위해 개발했다는 전설이 있음

5 C 언어의 철학 및 강점 C 언어의 설계 철학: 간결성 C 언어의 강점 i = i + 1; 보다는
다양한 플랫폼에서 사용 가능 매우 이식성이 높기 때문에… 어셈블리어에 대한 대안 C의 역사를 생각해 보자  device driver 프로그램에 매우 적절함 꽤 쉬우면서도 빠르다! 고급 언어의 특성(쉬움)과 저급 언어의 강점(빠름)을 겸비

6 2.2 간단한 C 프로그램

7 간단한 C 프로그램

8 C 컴파일러 컴파일러란? 컴파일러 종류 통역사(사람과 컴퓨터 사이의 통역 담당)
CPU는 C 프로그램을 모른다 CPU는 이진코드 형태의 기계어(machine language)만 안다 컴파일러 종류 상용 컴파일러: Microsoft Visual C/C++, Borland C/C++ 무료 컴파일러: 부록 B 참고 C 프로그램 int main… 컴파일러 기계어 프로그램 010101…

9 컴파일해 보자 Microsoft Visual C++ 통합개발환경 프로젝트 구성 창 편집 창 메시지 창

10 MSVC IDE에서 프로그램 개발하기 프로그램 개발 단계 프로젝트 만들기 파일 추가 프로그램 편집 컴파일과 빌드 실행과 디버깅

11 MSVC IDE: 프로젝트 만들기(1/3) 파일  새로 만들기(N)  프로젝트(P)… Win32 응용 프로그램 마법사
Visual C++ 템플릿에서 Win32 콘솔 응용프로그램 프로젝트 이름 입력 위치 설정 Win32 응용 프로그램 마법사 프로젝트 생성 완료

12 MSVC IDE: 프로젝트 만들기(2/3) 파일  새로 만들기(N)  프로젝트(P)… Win32 응용 프로그램 마법사
콘솔 응용 프로그램 빈 프로젝트 프로젝트 생성 완료

13 MSVC IDE: 프로젝트 만들기(3/3) 파일  새로 만들기(N)  프로젝트(P)… Win32 응용 프로그램 마법사
프로젝트 생성 완료

14 파일 확장자를 .c로 정하면 알아서 C 컴파일러로 컴파일해 준다.
MSVC IDE: 파일 추가(1/2) 소스파일 추가 솔루션 탐색기의 팝업 메뉴 추가(D)  새 항목(N) C++ 파일 파일이름 입력 소스파일 추가 완료 파일 확장자를 .c로 정하면 알아서 C 컴파일러로 컴파일해 준다.

15 MSVC IDE: 파일 추가(2/2) 소스파일 추가 소스파일 추가 완료

16 MSVC IDE: 파일 편집 편집 창에 프로그램 내용을 적어 넣는다.

17 MSVC IDE: 컴파일 및 빌드 빌드(B)  솔루션 빌드(B)

18 MSVC IDE: 실행 및 디버깅 실행: 디버그  디버깅하지 않고 시작 디버깅: 디버그  디버깅 시작
프로그램 오류(bug)를 떼어 내는(de-) 과정 프로그램 중간에 중단 지점을 설정하고 거기까지 실행 후에 한 단계씩 실행해 보며 변수 값을 확인할 수 있음

19 MSVC IDE: 컴파일 오류 처리 컴파일 시간 오류 프로그램 구문 오류로 인해 목적파일을 생성할 수 없는 상태

20 MSVC IDE: 비하인드 스토리 생성된 실행파일 Hello.exe를 찾아 보자! 프로젝트 폴더 찾기 앗, 이럴 수가!
프로젝트 생성 위치에 있음 잊은 사람은 다음부터는 프로젝트 생성위치를 잘 봐 두자! 앗, 이럴 수가! 프로젝트 폴더에 실행파일(*.exe)파일이 없네 Debug 폴더에 있음 비하인드 스토리

21 2.3 C 프로그램의 이해

22 hello.c 분석 주석 전처리기 지시자 main 함수 라이브러리 puts 호출 운영체제에 0값 리턴

23 main의 리턴값 main의 반환 값은 항상 정수여야 함 따라서 int main()이라고 선언해 줌 비 표준 방법
void main() { }도 컴파일은 잘 됨 그러나 표준에 맞는 방법은 아니므로 사용해선 안 됨

24 main의 리턴값이 없으면? 리턴값이 없으므로 경고(warning)가 발생할 수 있다!

25 가장 간단한 C 프로그램 리턴 타입을 생략하면 int로 간주한다.

26 표준출력 함수 printf 줄바꿈문자(newline)가 출력되지 않았다.
출력위치(output marker)가 다음 행으로 바뀌지 않았다.

27 출력위치 hello.c와 hello2.c의 출력을 비교해 보자 출력위치(output marker) 이유가 뭘까? 줄바꿈문자란?
줄바꿈문자(newline character) 위치에 주의 “계속하려면 아무 키나 누르십시오...”의 위치가 바뀌었다. 명령창에서 수행해 보자. 출력위치(output marker) 커서: 입출력 위치를 알리는 기호(네모 또는 밑줄) 커서 위치가 다른 것을 알 수 있음 이유가 뭘까? puts는 줄바꿈문자를 자동으로 삽입하지만 printf는 줄바꿈문자를 자동으로 삽입하지 않는다 줄바꿈문자란? 한 행의 끝을 알리는 제어문자

28 C 언어의 줄바꿈문자 \n으로 나타냄 이스케이프 시퀀스 두 개의 문자로 하나의 문자를 나타냄 특수문자를 나타내는 기법
제어문자를 비제어문자로 나타내는 방법 \로 시작하는 문자들은 특별한 의미 일반적인 의미에서 ‘탈피’한 특별한 의미 그래서 이스케이프 시퀀스(escape sequence)라고 부름 \는 이스케이프 문자(escape character)라고 부름

29 줄바꿈문자를 출력하는 Hello

30 2.4 명령줄 프로그래밍

31 소스파일에서 실행파일까지

32 명령줄 프로그래밍 환경 명령줄 프로그래밍 환경이란? 윈도우 명령창에서 프로그램을 개발하는 과정
필요한 프로그램을 별도로 실행시켜 프로그래밍 하는 환경 필요한 프로그램: 편집기, 컴파일러, 디버거 윈도우 명령창에서 프로그램을 개발하는 과정

33 명령줄 프로그래밍 환경 체험 PATH에 MSVC 경로 추가 제어판  시스템  고급 시스템 설정  환경변수  Path 선택  편집 “C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools”가 포함되도록 함 cmd 창에서 vsvars32 수행 시작  검색 창에 cmd vsvars32 프로그램 편집 notepad hello.c 컴파일 cl hello.c 실행 .\hello.exe

34 편집, 컴파일, 실행

35 Key Point

36 Key Point 1 C 언어는 유닉스(Unix)라는 운영체제를 만들기 위해 개발되었다.
C 컴파일러는 C 프로그램을 기계어로 번역하여 실행파일을 만들어 준다. 통합개발환경은 편집기, 컴파일러, 디버거 등을 모두 모아서 같은 윈도우 내에서 사용할 수 있도록 한다. Microsoft Visual C++ IDE를 이용하여 C 프로그램을 실행하려면, 프로젝트 생성, 파일 추가, 프로그램 편집, 빌드, 실행 단계를 거쳐야 한다. 표준 입출력 프로그램을 ‘콘솔 프로그램(console application)'이라고 부르기도 한다.

37 Key Point 2 MSVC IDE에서 컴파일 오류가 발생했을 때, 해당 오류를 더블클릭하면 오류 발생 위치로 이동한다. 그러나 컴파일러가 정확한 오류 위치를 추적하지 못할 수 있다. MSVC IDE에서 프로젝트는 실제로 컴퓨터의 폴더(디렉터리) 내에 저장된다. 그리고 실행파일이 성공적으로 생성되면 실행파일은 프로젝트 폴더 내의 Debug 폴더나 Release 폴더에 저장된다. C 언어는 두 가지 형태의 주석을 사용한다. 여러 행에 걸쳐질 수 있는 /* ... */ 형태의 주석과 한 행 끝까지 주석으로 처리하는 // ... 형태의 주석이다. 프로그램을 편집할 때 공백문자와 빈 행을 이용하여 가로 여백과 세로 여백을 적절히 맞추면 프로그램을 이해하는데 큰 도움이 된다. 전처리기는 컴파일러가 수행되기 전에 먼저 수행된다. C 프로그램에서 전처리기 지시자는 #으로 시작한다. #include 지시자는 헤더파일을 포함시키기 위해 사용된다.

38 Key Point 3 모든 C 프로그램에는 main 함수가 존재해야 하며 main의 리턴 타입은 int여야 한다.
여러 목적 파일을 묶어 주거나 목적 파일과 라이브러리 파일을 묶어 주는 기능을 하는 프로그램을 링커라고 한다. 명령줄 환경에서는 편집기, 컴파일러, 디버거 등을 모두 개별적으로 이용한다. 함수의 리턴 타입을 생략하면 C 컴파일러는 리턴 타입을 int형이라고 가정한다. 문자열 내부를 입력할 때 엔터 키를 누르면 안 된다. 줄바꿈문자를 표시하려면 \n을 이용해야 한다. 이스케이프 시퀀스는 제어문자를 비제어문자로 나타내기 위한 방법이다. C 언어에서 이스케이프 시퀀스는 \로 시작한다.

39 요약 간단한 C 프로그램은 main 하나로 구성되어 있음 표준 출력 함수
표준 출력 함수를 사용하려면 <stdio.h>를 #include해야 함 puts: 개행문자를 끝에 넣어 줌 printf: 개행문자를 자동으로 넣어주지 않음 main은 항상 정수 값을 리턴함(오류가 없다면 0을 리턴) main의 리턴 타입은 int 리턴 타입이 생략되어도 int로 간주 컴파일러: C 프로그램을 기계어 프로그램으로 변환 개발환경 Microsoft Visual C/C++(MSVC) 소개 무료 개발환경: Dev C++, MinGW Developer Studio

40 프로그래밍 실습

41 ▶ 프로그래밍 실습 1 여러분의 명함을 출력하는 프로그램을 작성하라. 명함은 7줄 이내로 작성하며 각 행은 30열 이내로 작성한다. 예컨대 다음과 같이 작성할 수도 있겠다.

42 ▶ 프로그래밍 실습 2 ASCII 아트라는 것이 있다. 문자열만 이용하여 그림을 그리는 것을 뜻한다. 여러 다양한 형태의 ASCII 아트를 웹에서 찾을 수 있다. 예컨대 다음 웹 페이지에도 ASCII 아트가 소개되어 있다. 여러분이 좋아하는 ASCII 아트를 골라서 이를 출력하는 C 프로그램을 작성해 보자. 예컨대 다음과 같은 ASCII 아트를 선택할 수도 있겠다.


Download ppt "Part 02 C 언어 개요 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 woogyun@pusan.ac.kr로 연락 주세요."

Similar presentations


Ads by Google