Когда я вижу man sqrt в Linux, я вижу 3 прототипа функции -
double sqrt(double x);
float sqrtf(float x);
long double sqrtl(long double x);
Если компилятор / библиотека написана на C ++, я понимаю, что это может быть перегрузка функций.
Если библиотека компилятора, обеспечивающая это, написана на C, как компилятор (gcc) реализует такие вещи, как перегрузка функций, которую C не поддерживает? (Или это более поздний стандарт C, такой как C99, поддерживает что-то подобное?)
На каком языке программирования реализован gcc?