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

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

© 2012 생능출판사 All rights reserved 쉽게 풀어쓴 C 언어 Express C Express 제 2 장 프로그램 개발과정.
C 언어 기초 1 위덕대학교 에너지전기공학부 이 수 형 2009년 1학기.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
제2장 프로그램 개발과정 C Express.
기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++ 프로그래밍 기초 : 객체지향의 시작 C++로 프로그래밍한다는 것의 의미
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Image & Video processing
Power Java 제3장 이클립스 사용하기.
Power Java 제3장 이클립스 사용하기.
Introduction To Computers
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
Power Java 제2장 자바 개발 도구.
CUDA Setting : Install & Compile
C 언어 1 1주차 C언어 시작하기 - 1차시 C 언어 특징 및 프로젝트 생성 Programming Language.
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 01. 이것이 C언어다.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
C / C++ Programming in multi platform
Visual Basic .NET 처음 사용하기.
1. C++ 시작하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
WinCE Device Driver 실습 #3
ARM Development Suite v1.2
Cross Compiler 설치.
C++프로그래 밍 컴퓨터정보과 / 이기희교수.
AVR – ATmega103(ATMEL) Compilers & ISP
Part 02 C 언어 개요 안산1대학 디지털정보통신과 임 성 국.
C 2장. C 프로그램 시작하기 #include <stdio.h> int main(void) { int num;
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
Chap 6.Assembler 유건우.
2장. JSP 프로그래밍을 위한 환경구성 제2장.
Device Driver 임베디드 시스템 I.
영상처리 실습 인공지능연구실.
Go Lang 리뷰 이동은.
제 1장. C++ 시작하기.
3D 프린팅 프로그래밍 05 – 반복패턴 만들기 강사: 김영준 목원대학교 겸임교수.
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
컴퓨터 개론 및 실습 1주차 2015년 03월 05일.
빌드 성공.
Fucntion 요약.
( Windows Service Application Debugging )
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
OpenCV 설정 2.21 만든이 딩딩.
제 15 강 문자와 코드 shcho.pe.kr.
DK-128 개발환경 설정 아이티즌 기술연구소
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
05. General Linear List – Homework
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
Docker Study 6~7.
수업 내용 수업 목표 강의 내용 강의 계획서 교과서 및 참고도서 평가 방법 수강생의 학습 방법 제안 강의자료 사이트
1장. C Language Synopsis.
Presentation transcript:

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

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

2.1 C 언어 소개

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

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

2.2 간단한 C 프로그램

간단한 C 프로그램

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

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

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

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

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

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

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

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

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

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

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

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

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

2.3 C 프로그램의 이해

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

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

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

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

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

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

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

줄바꿈문자를 출력하는 Hello

2.4 명령줄 프로그래밍

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

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

명령줄 프로그래밍 환경 체험 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

편집, 컴파일, 실행

Key Point

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

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

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

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

프로그래밍 실습

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

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