매크로 질문입니다.
글쓴이: puaxx / 작성시간: 금, 2005/08/19 - 11:39오전
char *function1(char *,char *){ ... } char *function2(char *,char *,int){ ... } int function3(char *,char **,int){ ... }
위와 같은 코드가 있다고 치고 에러처리 루틴을 짠다고 치면..
#define ERR(msg,function)\ printf("%s : Error %s",function,msg); #define THIS_FUNC "function1" char *function1(char *,char *){ ...ERR("error",THIS_FUNC); } #define THIS_FUNC "function2" char *function2(char *,char *,int){ ...ERR("error",THIS_FUNC); } #define THIS_FUNC "function3" int function3(char *,char **,int){ ...ERR("error",THIS_FUNC); }
위와 같은 방법으로 처리할까 했는데...더 욱 간단하게는 안될까요?
함수 선언할때마다 #define THIS_FUNC 이거 간락하게 어찌 안될까요?
Forums:
[code:1]#define ERR(msg) printf&
감사합니다^^
감사합니다..상수매크로가 있었군요..ㅋ ^^
전처리기가 알아서 바꿔줍니다.
__FUNCTION__
__FILE__
__LINE__
등등의 상수는 전처리기에서 알아서 바꿔줍니다.
각각
현재 함수
현재 파일
현재 라인
등으로 바꿔줍니다.
더 있을 듯 한데 뭐 찾아보시면 나오겠죠.
윽... 죄송.__FUNCTION__이 아니라 __func__입니다.
윽... 죄송.
__FUNCTION__이 아니라 __func__입니다.
__FUNCTION__ : MSVC용. 표준 아님.
__func__ : C99에서만. C90에는 없음. MSVC에서 안됨.
gcc는 둘 다 됩니다.
감사합니다.
ㅎㅎ
댓글 달기