int printf (const char *__format, ...)
{
register int __retval;
__builtin_va_list __local_argv; __builtin_va_start(__local_argv, __format);
__retval = __mingw_vprintf(__format, __local_argv);
__builtin_va_end(__local_argv);
return __retval;
}
위의 행은 printf
기능에 해당하는 stdio
라이브러리의 일부입니다. printf
이 호출되면 실행됩니다. 이 라인은 무엇을 의미합니까? 위의 각 행이 실행될 때 어떤 일이 발생합니까?Printf는 C 언어의 일부가 아닙니다. PRINTF의 코드를 따르는 것이 stdio.h에서 실행될 때 실제로 일어나는 일은 무엇입니까?
대부분은 가변 인자 기능에 대한 정보를 통해 답변을 얻을 수 있습니다. – chris
'printf()'를 구현하는 방법에 관심이 있다면, 최근에 작성한 구현은 https://github.com/duskwuff/lm-project0/blob/master/stdio.c에서 볼 수 있습니다. – duskwuff
에 오신 것을 환영합니다. 당신은 실수로'printf' *는 C 언어의 일부입니다. 표준 문서에서 C의 필수 부분으로 지정됩니다. 플랫폼이 언어의 라이브러리 부분을 구현하는 방법은 완전히 다릅니다. 일반적으로 이러한 구현은 일종의 까다 롭고 읽기가 쉽지 않습니다. C에서 초보자 인 경우 C 프로그램을 더 간단한 코드로 읽고 작성해야합니다. –