에러가 생겼을때 보통 메세지 박스로 어떤 에러인지 내용을 뿌려주죠..
근데 소스파일이 많아지면, 이게 어느 소스 파일의 어느 부분인지 금방
찾기가 힘들잖아요...
그런데 #define 스크립트를 이용하면 쉽게 파일명과 줄번호가 출력되는 메세제 박스를
만들 수 있습니다..
복사해다가 컴파일 해보시면 금방 어떤건지 알 수 있습니다..
설명없음 ^^;;
아마 윈도우용 컴파일러에서는 다 될거예여.
코드:
#include <stdio.h> #include <windows.h> #include <stdarg.h> void ShowMessage(const char* strFormat, ...) { static char strBuff[512]; va_list args; va_start(args, strFormat); vsprintf(strBuff, strFormat, args); va_end(args); MessageBox(0, strBuff, "메세지", MB_ICONERROR); } #define SHOW_ERROR(Msg) {
ShowMessage("%s(%d) %s \n", __FILE__, __LINE__, Msg ); }
#define CHEAK_ERROR(Flg) { if (!Flg) ShowMessage("%s(%d) %d \n", __FILE__, __LINE__, Flg ); }
int main() { char* s = NULL; CHEAK_ERROR(s); if (s == NULL) { SHOW_ERROR("에러!!! NULL이야~"); } return 0; } |
* Ronie.Kang : 개인적으로는 Debug Level에 따라서 출력이 되도록 수정하는 것도 좋을 것 같습니다
또한 가변인자를 활용하여 여러가지의 값을 가지도록 만들어 보아요~!