원문 : __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를 이용한 동적 디버깅에 많이 응용이
되니 눈여겨 봐야 합니다.
'도서관 I > Standard C & C++' 카테고리의 다른 글
[펌] Hungarian Notation (헝가리안 표기법) (0) | 2007.11.27 |
---|---|
[펌] __FILE__ , __FUNCTION__ , __LINE__ 매크로 (0) | 2007.08.30 |
[바람이] Release 버젼을 위한 효율적인 Debugging 코드 작성법 (0) | 2007.07.09 |
[펌] 컴퓨터가 이해할 수 있는 코드는 어느 바보나 다 짤 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다. (0) | 2007.06.27 |
[바람이] C++ 생성자에 인자를 전달하는 방법 (학생질문에 대한 대답) (0) | 2006.07.27 |