본문 바로가기
윤성우 열혈강의 C 정리

[ C 열혈강의 ] 대표적인 선행처리 명령문

by 어린왕자1234 2022. 6. 29.

#define: 단순정의  - 정의만 함

       

         헤더파일 정의   -   헤더파일 중복 사용 방지 

                            1) __헤더파일명__     

                            2) 특수문자 사용x => 언더바( _ )로 치환

                            3) 대문자 사용

   

                            # define __HEADER_H__     : 표준

                            # define __header_h__          : 가능

 

#define: Object-like macro     ( 단순치환 매크로 )

 

 

#define: Function-like macro  ( 패턴 치환 매크로 )

 

 

매크로 확장의 예

 

 

잘못된 매크로의 정의와 소괄호의 해결책

 

1) 매개변수 각각을  괄호처리한다.

2) 전체를 괄호처리한다.

3) 매크로, 몸체는 대문자로만 작성한다.

 

 

매크로를 두 줄에 걸쳐서 정의하는 방법

 

 

먼저 정의된 매크로의 사용

 

 

일반함수와 비교한 매크로 함수의 장점

 

 

매크로 함수의 단점

 

함수를 매크로로 정의하기 위한 조건

 

 

 

#ifndef __C_PROJECT_H__

#define __C_PROJECT_H__
#include <stdio.h>
#include <math.h>
#define POW2(X) ((int)pow(2,X))
#define DIFF_ABS(X,Y) ((X)>(Y) ? (X) - (Y) : (Y) -(X))
#define STRING_JOB(X,Y) #X"의 직업은 "#Y"입니다."
#define STNUM(X,Y,Z) X##Y##Z

#endif