#include <stdio.h>
#define STR(x) #x
#define STR2(x) STR(x)
#define LINE_FILE ("Line " STR2(__LINE__) " of file " STR2(__FILE__))
int main(void)
{
const char *str = LINE_FILE;
printf("%s\n", str);
return 0;
}
이 STR (x는) 실제 LINE 및 FILE를 인쇄 할 수있는 유일한 정의 방식인가 ???이 작업을 수행하는 더 간단한 방법이 있습니까?
덕분에 많이! 하지만 STR2 (__ LINE__)는 어떨까요? 이것은 정의를 사용하여 줄 번호를 인쇄하는 유일한 방법입니까? – GaryHull
@ garihull : 행 번호를 문자열 리터럴로 변환하는 유일한 방법입니다. '__LINE__'은 문자열이 아닌 정수 값입니다. –