Код для функции printf в C
Возможный дубликат:
исходный код функций c / c ++
Мне было интересно, где я могу найти код C, который используется так, что когда я пишу printf («Hello World!»); в моей программе C, чтобы знать, что она должна печатать эту строку в STDOUT. Я смотрел в , но там я мог найти только свой прототип int printf (const char * format, …), но не так, как он выглядит внутренне.
- Win32 - чтение с stdin с таймаутом
- Чтение строки с помощью scanf () не очень хорошо?
- printf не печатать на экране
- Каков наилучший способ вернуть случайную строку в текстовый файл с помощью C?
- stdlib и цветной выход в C
- Какую библиотеку CI / O следует использовать в коде на C ++?
- C эквивалентно просмотру fstream
- Как читать / анализировать ввод в C? Часто задаваемые вопросы
- Java: как прервать чтение streamа из System.in
- Перенаправление stdin и stdout из C
- stdio.h не стандартно в C ++?
- GCC фатальная ошибка: stdio.h: нет такого файла или каталога
- Почему этот код печатает два раза?
Вот версия printf
GNU … вы можете увидеть, как она передается в 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. (Это контрастирует с эквивалентом printf
от Pascal, который реализуется с конкретной поддержкой в компиляторе … по крайней мере, это было в тот же день.)