매크로 질문입니다.
글쓴이: 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&
#define ERR(msg) printf("%s : Error %s",__FUNCTION__,msg);감사합니다^^
감사합니다..상수매크로가 있었군요..ㅋ ^^
전처리기가 알아서 바꿔줍니다.
__FUNCTION__
__FILE__
__LINE__
등등의 상수는 전처리기에서 알아서 바꿔줍니다.
각각
현재 함수
현재 파일
현재 라인
등으로 바꿔줍니다.
더 있을 듯 한데 뭐 찾아보시면 나오겠죠.
윽... 죄송.__FUNCTION__이 아니라 __func__입니다.
윽... 죄송.
__FUNCTION__이 아니라 __func__입니다.
__FUNCTION__ : MSVC용. 표준 아님.
__func__ : C99에서만. C90에는 없음. MSVC에서 안됨.
gcc는 둘 다 됩니다.
감사합니다.
ㅎㅎ
댓글 달기