C не имеет (насколько мне известно) перегрузки или шаблонов, верно? Итак, как же набор независимых от типов функций с одинаковыми именами может существовать в обычном старом С? Обычный трюк во время компиляции включал бы целую кучу макросов, не так ли?