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