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