Transcript 13. Tips.2

Tips. 2
실행파일이 만들어지는 과정
C언어 프로그램의 실행파일은
 C언어 소스파일을 컴파일하고 링크함으로써 만들어지
며, 컴파일과 링크를 합하여, 빌드(build) 혹은 메이크
(make)라고 한다.
빌드
소스 파일
컴파일
링크
실행 파일
컴파일, 링크 과정
p180
소스 파일의 분할
프로그램을 구성하는 기능별로 소스파일을
분류
 한 파일에 모아놓는 것보다 소스 관리가 편하고 가독
성을 높인다.
방법
 기능별로 소스파일을 분할하고, 각 소스파일에 관련된
헤더파일을 만든다.
 이때 기능별 소스파일과 헤더파일의 이름은 통일한다.
헤더(Header) 파일
 Prototype선언, 구조체 정의 등을 포함한
텍스트파일
 확장자가 .h인 파일
 헤더 파일 include
 #include <파일명> : 표준함수
#include “파일명” : 호출하는 파일과 같은 디렉토
리에 있는 헤더파일을 인클루드.
cf. 매크로 (Macro)
 #으로 시작하는 한 줄짜리 명령
 컴파일 전 단계에서 전처리기(preprocessor)가 코드
속의 매크로를 변환
 종류
 #include : 헤더파일의 내용을 복사하라!
 조건에 따른 컴파일 #if, #ifndef 등
: 컴파일 조건 변경.
헤더 파일의 중복
원인
 여러 파일에서 #include를 사용하면서, 동일한 헤더
파일을 두 번 인클루드하는 경우, 중복 에러 발생
중복 include 막는 예제
 #ifndef _MYHEADER
#define _MYHEADER
// 내용
#endif
Solution vs. Project
Solution > Project > Files
Project 관리
 Solution
 하나의 제품을 구성하는 프로젝트들의 집합
: 확장자 .sln
예) Office2010
 Project
 하나의 실행파일을 만드는데 필요한 파일들
의 집합
: 확장자 .vcxproj
예: Word, Excel
Project 생성
하나의 솔루션에 다수의 프로젝트 생성
 하나의 솔루션과 프로젝트 생성 후 다음 프로
젝트를 추가한다.
 파일 메뉴  추가 메뉴  새 프로젝트 추가
Project별 빌드
 솔루션 탐색기에서 굵게 표시된 프로젝트가 현
재 선택된 프로젝트
 빌드할 프로젝트 관련 파일 등 활성(Active) 후,
프로젝트 메뉴 > 시작 프로젝트로 설정
또는 솔루션탐색기에서 솔루션에 대한 팝업 메뉴에서
시작 프로젝트 설정 후, 원하는 프로젝트를 선택하고
빌드하면 그 프로젝트가 실행
디버깅(Debugging)
 디버깅
 프로그램 오류인 버그(bug)를 수정하는 작업
 디버깅 보조 도구 없이
 처리를 분할하고, printf( ) 삽입
 함수 별로 실행하거나, 처리의 흐름을 조건식 등으로
제한
 데이터 구조 분석 등
디버거(Debugger)
 디버깅 작업을 보조하는 도구(Tool)
 소스 프로그램의 변경 없이 동작 확인
 비쥬얼 C++(VC++) 개발 환경은 디버거를 내장하고
있다.
 디버거의 대표 기능
 중단점 (Break Point) 설정
 단계 (Step) 실행
 변수값의 표시와 변경
VC++의 디버거
 솔루션 구성(Configuration)
 Debug / Release
 컴파일 시 빌드 모드(build mode) 설정
 Dubug 모드
 디버깅 정보 포함  개발버젼
 Release 모드
 디버깅 정보 없이 코드 최적화  최종버젼
중단점 설정
 중단점 (Break Point)
 프로그램의 실행을 중지하고 싶은 위치
 중단점을 설정할 위치에 커서를 두고 단축키 F9
: 중단점 위치에 빨간색 원 생성
 디버깅 시작
 디버깅>디버깅 시작 메뉴 (단축키 F5)
: 다음 중단점에서 멈춤.
 디버깅 중단 (Shift+F5)
단계 실행
 한 줄씩 코드를 실행하는 기능
 조건 분기가 많은 프로그램 등에 특히 편리
 다음 실행할 코드 앞에 노란색 화살표 표시
 단계 실행의 종류
 Step Over (단축키 F10)
: 한 줄씩 실행하되 함수 안으로 안 들어가기.
 Step Into (단축키 F11) : 함수 안으로 들어가기
 Step Out (Shift + F11) : 함수 안에서 바로 나오기
변수값의 표시와 변경
 변수 값 확인
 코드 수정 없는 printf( ) 기능
 툴팁으로 마우스가 놓여진 변수의 값 확인
 좌측 하단 변수 표시 창
: 자동, 지역, 조사식(전역변수)
 변수 값 변경
 툴팁 및 변수 표시 창을 통해 변경 가능.
기타
 기타 기능
 커서 위치까지 실행 (Ctrl + F10)
 조건부 중단점
: 중단점 커서 > 팝업메뉴 > 중단점 > 조건 설정
실습
오늘 배운 Tip들을 한 학기 동안 배운 예제
에 적용해 본다.
 소스파일 분할
: 연결 리스트 실습 예제의 구조체와 함수 등을 소스
파일 분할 해보기.
 솔루션, 프로젝트 관리
: 성적처리 프로그램을 버전 별로 하나의 솔루션 내에
서 2개의 프로젝트로 관리 해보기.
 디버깅
: 오류가 발생했던 예제를 디버거로 해결 해보기.
End