매크로 함수란 말 그대로 매크로로 함수를 정의하는 것이다. 물론 일반 함수처럼 인자를 전달받을수 있고 바디 선언을 통해 반환을 결정하는 것과 완전히 같지만 모양새가 약간 다르다.
# define OEMC_knlSetTimerEx(_tm, _timeout, _param, _repeat) \
{ \
gTmPack.i64timeout = _timeout; \
gTmPack.bRepeat = _repeat; \
MC_knlSetTimer(_tm, _timeout, (void *)&gTmPack); \
}
Macro Ex)
#include <stdio.h>
#include <stdlib.h>
//#define _malloc malloc
#define _malloc(_sz) _Malloc(_sz, __FILE__, __LINE__)
void *_Malloc(int siz, char *file, int line)
{
printf("memory alloced : %s, %d\n", file, line);
return malloc(siz);
}
int main()
{
void *kk;
kk = _malloc(10);
#undef _malloc
#define _malloc malloc
kk = _malloc(10);
return 0;
}