Я пытаюсь изучить 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 выполняет указанную выше задачу?