다음 코드는 스스로 문제가 있기 때문에 문제가 있습니다.
로그 [선 : 10] [: 5 라인]
로그 [선 :
그러나이 사실이
로그인을 5 :
스스로 호출하는 lineno를 얻을 수 있습니까? (C/C++)
1 #include<stdlib.h>
2 #include<stdio.h>
3 void log()
4 {
5 printf("Log [Line:%d]\n",__LINE__);
6 }
7 int main()
8 {
9 log();
10 log();
11 }
예상되는 결과는
로그 [9 선]입니다 ]
는 LINE 5.
로 사전 프로세스 단계에서 대체 된 내 질문은 놀라운 아니오 , 로그 함수를 설계하여 예상 결과를 얻는 방법은 무엇입니까?
감사합니다.
를 C++의 경우, 당신은 또한 인라인 함수를 사용할 수 있습니다. – waffleman
@waffleman 컴파일러가 코드를보기 전에 매크로 확장 ('__LINE__' 매크로)을 할 수 없습니다. –
인라인 함수가 작동하지 않습니다 -'__LINE__'은 선행 처리기 매크로이므로 함수 인라이닝 중에는 전 처리기 대신 사용됩니다. (편집 : ninja'd) – AshleysBrain