#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
'윤성우 열혈강의 C 정리' 카테고리의 다른 글
[ C 열혈강의 ] 매개변수의 결합과 문자열화 (0) | 2022.06.29 |
---|---|
[ C 열혈강의 ] 조건부 컴파일을 위한 매크로 (0) | 2022.06.29 |
[ C 열혈강의 ] 매크로와 선행처리기 (0) | 2022.06.29 |
[ C 열혈강의 ] 메모리의 동적 할당 (0) | 2022.06.29 |
[ C 열혈강의 ] C언어의 메모리 구조 (0) | 2022.06.29 |