선후수 과목 연계 강좌 : C++ 프로그래밍 입문을 위한 C 프로그래밍
jhhwang@kumoh.ac.kr
황준하
금오공과대학교 컴퓨터공학과
프로그램 작성 단계
#define을 통한 전처리문의 동작 이해
전처리문의 종류
#include
#define 매크로 함수
연습 문제
7강. 전처리문
7강. 전처리문 프로그램 작성 단계
코딩
전처리 컴파일
링크
전처리기 Preprocessor
컴파일러 Compiler
링커 Linker
새로운 소스 코드
파일 별 목적 코드
실행 파일
디버거
디버깅
Debugger
전처리
◦ 소스 코드를 전처리문에 따라 변경하여 새로운 소스 코드 작성
컴파일 수행
#define : 흔히 문자열 상수라고 함
◦ 사용 방법 : #define 문자열 대치문자열(들)
◦ 코드 중에 PI라는 문자열이 나오면 뒤에 있는 문자열(3.14)로 대치
7강. 전처리문 #define문을 통한 전처리문의 동작 이해
#define PI 3.14
7강. 전처리문 #define문을 통한 전처리문의 동작 이해
#define PI 3.14 int main()
{ double radius = 2; // radius : 반지름 double area;
area = PI * radius * radius; // area : 면적 return 0;
} 1 2 3 4 5 6 7 8 10 9 11
전처리
int main()
{ double radius = 2; // radius : 반지름 double area;
area = 3.14 * radius * radius; // area : 면적 return 0;
} 1 2 3 4 5 6 7 8 10 9 11
전처리 후의 코드
7강. 전처리문 #define문을 통한 전처리문의 동작 이해
#define MONTH 12
#define NINE_NINE 9 * 9
#define NOTHING int main()
{ int salary = 100 * MONTH;
int last_gugu = NINE_NINE;
int age = 20;
NOTHING return 0;
} 1 2 3 4 5 6 7 8 10 9 11 12 13 14
int main()
{ int salary = 100 * 12;
int last_gugu = 9 * 9;
int age = 20;
return 0;
} 1 2 3 4 5 6 7 8 10 9 11 12 13 14
7강. 전처리문 전처리문의 종류
#include
◦ 뒤에 나오는 파일의 내용을 해당 위치에 복사
#include <파일명>
◦ 미리 지정되어 있는 시스템 폴더를 먼저 탐색 파일이 없다며 에러
◦ Visual C++의 [프로젝트][속성][구성 속성][VC++ 디 렉터리][포함 디렉터리]에서 설정 가능
#include “파일명”
◦ 소스 파일이 있는 폴더 우선 탐색
없다면 시스템 폴더 탐색
7강. 전처리문 #include
7강. 전처리문 #include
#include <iostream>
using namespace std;
#include "test.txt"
int main() {
cout << Sum(1, 2) << endl;
cout << Sum(3, 4) << endl;
return 0;
} 1 2 3 4 5 6 7 8 9 10 11
소스 코드 파일 확장자 - C 언어 : .c
- C++ 언어 : .cpp
포함되는 파일 확장자 헤더 파일 - .h
매크로 함수
◦ 기능 : 함수와 유사 매개변수처럼 전달
◦ 동작 : #define 문자열 상수와 동일 대체
사용 예
7강. 전처리문 #define 매크로 함수
#include <iostream>
using namespace std;
#define SUM(x, y) x + y int main()
{ cout << SUM(1, 2) << endl;
cout << SUM(3, 4) << endl;
1 2 3 4 5 6 7 8 10 9
#include <iostream>
using namespace std;
int main()
{ cout << 1 + 2 << endl;
cout << 3 + 4 << endl;
1 2 3 4 5 6 7 8 10 9
7강. 전처리문 #define 매크로 함수
#include <iostream>
using namespace std;
#define MULTI(x, y) x * y int main()
{ cout << MULTI(1 + 2, 3 + 4) << endl;
return 0;
} 1 2 3 4 5 6 7 8 10 9 11
1 + 2 * 3 + 4
#define MULTI(x, y) ((x) * (y))
2개의 값을 전달받아 곱셈 결과를 출력하는 MULTI라는 매크로 함수를 만들어 보라. 매크로 함수 내에서 출력까 지 수행할 수 있어야 한다.
7강. 전처리문 연습 문제
int main()
{ MULTI(1.1, 2.2);
return 0;
} 1 2 3 4 5 6
7강. 전처리문 연습 문제
#include <iostream>
using namespace std;
#define MULTI(x, y) cout << "곱셈 : " << ((x) * (y)) << endl
int main()
{ MULTI(1.1, 2.2);
return 0;
} 1 2 3 4 5 6 7 8 10 9 11
7강의 학습 내용
◦ 전처리의 의미와 동작 방식
◦ 전처리문의 종류
◦ #include 전처리문
◦ #define 전처리문 : 문자열 상수, 매크로 함수
8강의 학습 내용
◦ VC++ 2013에서의 디버깅 방법
7강. 전처리문 학습 내용 정리