26. 매크로와 전처리기.

Slides:



Advertisements
Similar presentations
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
Advertisements

데이터의 표현과 연산 (1) (Chapter 3)
01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
-Part2- 제3장 포인터란 무엇인가.
11장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
C 12장. 고급 기능 #include <stdio.h> int main(void) { int num;
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
-Part3- 제5장 전처리기와 파일 분할 컴파일
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
Chapter 05 전처리와 입출력.
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
쉽게 풀어쓴 C언어 Express 제15장 전처리 및 비트 필드 C Express.
18장. 헤더 파일과 구현 파일 01_ 헤더 파일과 구현 파일의 사용.
C 프로그래밍.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Chapter 06. 선택문.
14장. 포인터와 함수에 대한 이해.
11장. 1차원 배열.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
27장. 모듈화 프로그래밍.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
24장. 파일 입출력.
상수와 기본 자료형.
19. 함수 포인터와 void 포인터.
제 4장 전처리기와 매크로 Hello!! C 언어 강성호 김학배 최우영.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Chapter 11. 배열과 포인터.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
Chapter 08. 함수.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
18장. 다차원 배열 그리고 포인터.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
Chapter 13. 템플릿(Template) 1
7주차: Functions and Arrays
구조체(struct)와 공용체(union)
과학과 수업연구 6.1 전열기에서 열이 발생하는 까닭은 (2)
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
실습과제 1번 /* 1. 멤버 변수로 반경 radius를 갖고, 그 값을 모니터에 출력하는
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
17장. 포인터의 포인터.
어서와 C언어는 처음이지 제21장.
C.
윈도우에서의 유니코드.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
CODE INJECTION 시스템B 김한슬.
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
13. 포인터와 배열! 함께 이해하기.
개정판 누구나 즐기는 C언어 콘서트 제14장 전처리와 분할 컴파일리 출처: pixabay.
Presentation transcript:

26. 매크로와 전처리기

26-1 전처리기에 의한 매크로 처리 전처리기에 의한 전처리 그림 26-1

#define으로 시작하는 전처리기 지시자 26-1 전처리기에 의한 매크로 처리 #define으로 시작하는 전처리기 지시자 컴파일러에 의해 처리되는 것이 아니다. 전처리기에게 단순 치환 작업을 요청할 때 사용되는 지시자 그림 26-2

26-1 전처리기에 의한 매크로 처리 /* Circle1.c */ #include <stdio.h> 26-1 전처리기에 의한 매크로 처리 /* Circle1.c */ #include <stdio.h> #define PI 3.1415 int main (void) { double area; double radius; fputs("반지름 : ", stdout); scanf("%lf", &radius); area=radius*radius*PI; printf("넓이는 %f 입니다 \n", area); return 0; } /* Circle1.c */ … … … int main (void) { double area; double radius; fputs("반지름 : ", stdout); scanf("%lf", &radius); area=radius*radius* 3.1415; printf("넓이는 %f 입니다 \n", area); return 0; }

26-1 전처리기에 의한 매크로 처리 /* Preproc.c */ #include <stdio.h> 26-1 전처리기에 의한 매크로 처리 /* Preproc.c */ #include <stdio.h> #define string "C++ Compatible C" #define cal (3*4)+(12/4) #define ONE 1 #define TWO ONE+ONE #define T HREE TWO + ONE int main (void) { printf("string : %s \n", string); printf("cal : %d \n", cal); printf("ONE=%d, TWO=%d, THREE=%d \n", ONE, TWO, THREE); return 0; }

매크로 함수란? 26-2 매크로를 이용한 함수의 구현 매크로를 기반으로 정의되는 함수 26-2 매크로를 이용한 함수의 구현 매크로 함수란? 매크로를 기반으로 정의되는 함수 함수가 아니라 매크로다! 다만 함수의 특성을 지닐 뿐이다. 예제 square1.c 참조 그림 26-3

매크로 함수의 장점 매크로 함수의 단점 매크로 함수가 되기 위한 조건 26-2 매크로를 이용한 함수의 구현 26-2 매크로를 이용한 함수의 구현 매크로 함수의 장점 자료형에 독립적이다. 실행 속도가 향상된다. 매크로 함수의 단점 구현이 어렵다. 디버깅이 어렵다. 매크로 함수가 되기 위한 조건 함수의 크기가 작아야 한다. 그렇지 않을 경우 실행 파일의 크기가 커지게 된다.

#을 이용한 전달 인자의 문자열화 add.c의 해결을 위한 두 가지 특성 26-2 매크로를 이용한 함수의 구현 26-2 매크로를 이용한 함수의 구현 #을 이용한 전달 인자의 문자열화 예제 add.c의 문제점 파악! add.c의 해결을 위한 두 가지 특성 예제 str_con.c, str_literal.c 참조 그림 26-5 그림 26-6

26-2 매크로를 이용한 함수의 구현 add.c의 문제점 해결 예제 add_literal.c 참조 그림 26-7

26-2 매크로를 이용한 함수의 구현 ##을 이용한 토큰의 결합 token_concat.c 참조 그림 26-8