도서관 I/Standard C & C++
[펌] 동적 디버깅 __FILE__ , __LINE__의 활용
바람이
2007. 8. 30. 17:19
원문 : __FILE__ , __LINE__ 의 활용
#include <stdio.h>
void main() {
#line 1 "main.c"
int i=2,j=3,k=4;
printf("%d,%d,%d\n",i,j,k);
printf("%s, %d\n",__FILE__,__LINE__);
printf("%d\n",__LINE__);
#line 3897
printf("%s, %d\n",__FILE__,__LINE__);
#line 0 "aaa.c"
printf("%s, %d\n",__FILE__,__LINE__);
}
다음의 결과를 유추해 보세여..
시간 1분) 밑에 답을 보기 전에 꼭 먼저 생각해 보시길...
2,3,4
main.c, 3
4
main.c, 3897
aaa.c, 0
이때 __LINE__은 현재 행의 번호를
__FILE__은 현재 파일명을 나타내는데
#line 매크로가 이값을 바꿔 줄수 있습니다.
이기법은 향후에 assert를 이용한 동적 디버깅에 많이 응용이
되니 눈여겨 봐야 합니다.
#include <stdio.h>
void main() {
#line 1 "main.c"
int i=2,j=3,k=4;
printf("%d,%d,%d\n",i,j,k);
printf("%s, %d\n",__FILE__,__LINE__);
printf("%d\n",__LINE__);
#line 3897
printf("%s, %d\n",__FILE__,__LINE__);
#line 0 "aaa.c"
printf("%s, %d\n",__FILE__,__LINE__);
}
다음의 결과를 유추해 보세여..
시간 1분) 밑에 답을 보기 전에 꼭 먼저 생각해 보시길...
2,3,4
main.c, 3
4
main.c, 3897
aaa.c, 0
이때 __LINE__은 현재 행의 번호를
__FILE__은 현재 파일명을 나타내는데
#line 매크로가 이값을 바꿔 줄수 있습니다.
이기법은 향후에 assert를 이용한 동적 디버깅에 많이 응용이
되니 눈여겨 봐야 합니다.