Недавно у меня было интервью, и один вопрос спросил, что такое extern "C"
в коде на С++. Я ответил, что использовать C-функции в С++-коде, поскольку C не использует имя-mangling. Меня спросили, почему C не использует шифрование имен, и, честно говоря, я не мог ответить.
Я понимаю, что когда компилятор С++ компилирует функции, он дает особое имя функции главным образом потому, что мы можем иметь перегруженные функции с тем же именем в С++, которые должны быть разрешены во время компиляции. В C имя функции останется неизменным или может быть с _ перед ним.
Мой запрос: что не так, что позволяет компилятору С++ также использовать функции C? Я бы предположил, что неважно, какие имена им дает компилятор. Аналогично мы называем функции в C и С++.