2019-1 st 프로그래밍입문 (1) 1 장. C 언어와프로그래밍개요 박종혁교수 서울과학기술대학교컴퓨터공학과 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr
목차 C 소개 프로그래밍의개념 C 언어의특징 C 프로그램개발 일반적인 C 프로그램개발과정 Visual Studio 를이용한 C 프로그램개발과정 2
소프트웨어의중요성 컴퓨터하드웨어를작동할수있게만든다. 3
지능정보기술 인공지능, 사물인터넷, 클라우드컴퓨팅, 빅데이터, 모바일 소프트웨어의중요성이강조된다. 4
프로그래밍언어 5
저급언어 기계어 : 2 진으로된 CPU 명령어 어셈블리어 : 기계어와 1:1 로대응되는니모닉기호 기계종속적 6
고급언어 CPU 의종류나하드웨어의특성에얽매이지않는프로그램을작성 C 나 C++, Java, Python 등기계독립적 7
컴파일 컴파일 : 소스파일을기계어파일로만드는과정 8
C 의개요 C-Language 란? 원하는결과를얻어내기위한 Program 작성시필요한일종의언어 Unix 운영체제하에서시스템프로그래밍을하기위해개발된언어 구조적인언어, 강력한기능, 빠른속도 9
C 언어의종류 ANSI C (American National Standard Institute) : 표준화작업, Standard C Visual C : Microsoft 사에서개발 Borland C : Microsoft 사에서개발 10
C 언어의역사 데니스리치켄톰슨 11
C 언어의역사 C 언어의역사 ALGOL60 (ALGOrithmic Language): 1960 년국제위원회에서발표 CPL (Combined Programing Language) :1963 년영국캠브리지런던대학 BCLP (Basic CLP) : 영국캠브리지런던대학 B : 미국 AT&T Bell 연구소의 Ken Tompson, 1970 년발표 C : 미국 AT&T Bell 연구소의 Dennis Ritche, 1972 C++ : 표준 C 에서 OOP(Object Oriented Programing, 객체지향프로그램 ) 의개념추가 12
C++ 언어 C/C++ 컴파일러 소스파일확장자에따라 C 또는 C++ 컴파일수행 13
C 언어의특징 14
C 언어를배워야하는이유 프로그래머들사이에서일종의공용어역할 대부분의최신언어 (C++, Java, C#, Javascript, Perl 등 ) 는 C 언어로부터파생 C 언어를알면다른언어를배우는것이쉬워진다 프로그래밍의기본개념을이해하는데도유용 메모리구조나함수의개념, 사용자정의형, 제어구조이해 프로그램의내부동작원리이해 15
C 언어의활용분야 16
일반적인 C 프로그램개발과정 (1/4) 17
일반적인 C 프로그램개발과정 (2/4) 소스파일작성 컴파일 실행 소스파일작성 간단한텍스트편집기를이용하거나, 통합개발환경 (IDE) 이제공하는소스코드편집기를사용해서작성한다 C/C++ 컴파일러에서 C 컴파일을하려면.c 확장자를가진파일로저장 18
일반적인 C 프로그램개발과정 (3/4) 컴파일 전처리기 구문분석 코드생성 링크 전처리기는소스파일을컴파일하기위해준비한다 구문분석에서는소스코드가 C 문법에맞게작성되었는지검사한다 - 잘못된부분에대하여컴파일에러발생 컴파일에러가없으면각각의소스파일마다별개의오브젝트코드가생성된다 오브젝트파일 링커는여러개의오브젝트파일과라이브러리를링크해서실행파일을생성한다 - 링크하면서문제가있으면링크에러발생 컴파일 / 링크에러가발생하면소스파일을수정하고컴파일하는과정을반복한다 19
일반적인 C 프로그램개발과정 (4/4) 실행 링크결과생성된실행파일을실행해서올바른결과를얻을수있는지확인한다 - 프로그램이잘못된실행결과를생성하거나실행중에프로그램이죽는경우에실행에러발생 - 실행에러는프로그램의논리가잘못되어발생하는에러 디버깅 : 프로그램의실행흐름이올바르게진행되는지, 프로그램내에서사용된수식의값이맞는지등을살펴봄으로써실행에러를찾아서고치는과정 20
Visual Studio 다운로드 https://visualstudio.microsoft.com/ 21
Visual Studio 설치 Visual Studio 를사용하려면 Microsoft 계정이필요하다. 22
프로젝트와솔루션 (1/2) 프로젝트 (.vcxproj) 소스파일및헤더파일에대한정보 소스파일을컴파일할때사용되는컴파일옵션 오브젝트파일이나라이브러리를링크할때사용되는링크옵션 23
프로젝트와솔루션 (2/2) 솔루션 (.sln) 서로관련된프로젝트들을함께관리하기위해솔루션을사용한다 모든프로젝트가반드시솔루션에포함되어야한다 솔루션 Test.sln 솔루션 NetworkApp.sln 프로젝트 Test.vcxproj 프로젝트 Client.vcxproj 프로젝트 Server.vcxproj 솔루션내에프로젝트가하나인경우 솔루션내에프로젝트가여러개인경우 24
Visual Studio 를이용한 C 프로그램개발과정 25
프로젝트생성 [ 파일 ] [ 새로만들기 ] [ 프로젝트 ] 26
Windows 데스크톱프로젝트 27
빈프로젝트생성 솔루션과프로젝트정보 28
솔루션폴더와프로젝트폴더 프로젝트를생성하면, 디폴트로프로젝트이름과같은이름의솔루션이생성된다 솔루션폴더와솔루션폴더안에프로젝트폴더생성 솔루션폴더에는솔루션파일인 test.sln 이, 프로젝트폴더에는프로젝트파일인 test.vcxproj 가생성된다 프로젝트생성위치 솔루션폴더 프로젝트파일 프로젝트폴더 29
새항목추가 솔루션탐색기에서 test 프로젝트를클릭한다음 [ 프로젝트 ] [ 새항목추가 ] 소스파일이름지정 파일확장자를반드시.c 로지정해야한다. 30
소스파일작성 소스파일작성 31
빌드 [ 빌드 ] [ 솔루션빌드 ] 빌드결과 32
실행 컴파일에러와링크에러가없으면프로젝트빌드결과실행파일이생성된다 [ 디버그 ] [ 디버그하지않고시작 ] 직접명령프롬프트에실행파일의완전경로명을입력한다 c:\work\chap01\test\debug\test.exe 33
Visual Studio 기능 34
35
참고문헌 천정아, Core C Programming, 연두에디션 (2019) C 가보이는그림책, ANK Co., Ltd., 성안당 (2018) Greg Perry, Dean Miller 어서와 C 언어는처음이지, 천인국옮김, 인피니티북스 (2015) KELLEY ( 역 : 김명호외 ), A Book on C, 홍릉과학출판사 (2003) 윤성우, 열혈 C 프로그래밍, 오렌지미디어 천인국, 쉽게풀어쓴 C 언어 Express, 생능출판사 서현우, 뇌를자극하는 C 프로그래밍, 한빛미디어 강성수, 쾌도난마 C 프로그래밍, 북스홀릭 고응남, C 프로그래밍기초와응용실습, 정익사 36