Возможно, я не понимаю различий между C и C ++, но когда и почему нам нужно использовать
extern "C" {
? По-видимому, это «соглашение о связях».
Я прочитал об этом вкратце и заметил, что все файлы заголовков .h, включенные в MSVS, окружают им свой код. Какой именно тип кода является «кодом C», а НЕ «кодом C ++»? Я думал, что C ++ включает весь код C?
Я предполагаю, что это не так, и что C ++ отличается, и что стандартные функции / функции существуют в одном или другом, но не в обоих (например, printf - это C, а cout - C ++), но этот C ++ имеет обратную совместимость, хотя объявление extern "C". Это правильно?
Мой следующий вопрос зависит от ответа на первый, но я все равно задам его здесь: поскольку файлы заголовков MSVS, написанные на C, окружены extern "C" {...}, когда вам когда-нибудь понадобится использовать это себя в собственном коде? Если ваш код является кодом C, и вы пытаетесь скомпилировать его в компиляторе C ++, не должно ли он работать без проблем, потому что все стандартные h-файлы, которые вы включаете, уже будут иметь в себе extern «C» с компилятором C ++?
Вы должны использовать это при компиляции на C ++, но при ссылке на уже созданные библиотеки C или что-то в этом роде?