Подтвердить что ты не робот

Код для функции printf в C

Возможный дубликат:
исходный код функций c/С++

Мне было интересно, где я могу найти код C, который использовался так, что когда я пишу printf ( "Hello World!" ); в моей программе C, чтобы знать, что она должна печатать эту строку в STDOUT. Я посмотрел в < stdio.h > , но там я мог найти только его прототип int printf (const char * format,...), но не так, как он выглядит внутренне.

4b9b3361

Ответ 1

Здесь версия GNU printf... вы можете видеть, что она проходит в stdout до vfprintf:

__printf (const char *format, ...)
{
   va_list arg;
   int done;

   va_start (arg, format);
   done = vfprintf (stdout, format, arg);
   va_end (arg);

   return done;
}

Смотрите здесь.

Здесь ссылка на vfprintf... здесь происходит все "магия" форматирования.

Единственное, что действительно "отличается" от этих функций, это то, что они используют varargs для получения аргументов в списке аргументов переменной длины. Кроме этого, они просто традиционные C. (Это контрастирует с эквивалентом Pascal printf, который реализуется с конкретной поддержкой в ​​компиляторе... по крайней мере, это было в тот же день.)

Ответ 2

В зависимости от вашей платформы и реализации; одна хорошая реализация - это GNU C, которую вы можете скачать из здесь