Как работает конкретная функция C?

Я пытаюсь изучить C и уже очень запутался.

В языках ООП, которые я использовал, существует возможность выполнять перегрузку методов, когда одна и та же функция может иметь разные типы параметров и вызывать наиболее подходящий.

Теперь в C я знаю, что это не так, поэтому я не могу решить следующую проблему: как работает printf ().

Например:

char chVar = 'A';
int intVar = 123;
float flVar = 99.999;

printf("%c - %i - %f \n",chVar, intVar, flVar);
printf("%i - %f - %c \n",intVar, flVar, chVar);
printf("%f - %c - %i \n",flVar, chVar, intVar);

Теперь, когда C не поддерживает перегрузку функций, как printf может принимать любое количество аргументов любого типа, а затем правильно работать с ними?

Я попытался найти printf () работает, загружая исходный пакет glibc, но вполне может найти его, хотя я буду продолжать поиски.

Может ли кто-нибудь здесь объяснить, как C выполняет указанную выше задачу?

10
задан Pike Man 16 January 2012 в 18:03
поделиться