Обычно, чтобы получить библиотеку C, работающую на C ++, вы должны включить ее в extern "C" { #include <clibrary.h> }
.
Только тогда, когда библиотека не была разработана с учетом совместимости с C ++.Но это хак.
Многие библиотеки будут включать в свои файлы заголовков код, такой как #ifdef __cplusplus extern "C" { ...
, чтобы сделать их более удобными для пользователя в коде C ++ (например, pthread.h
)
Да, хорошая библиотека сделает это.
В результате вам не нужно и не следует добавлять еще один extern "C"
вокруг #include
.
stdio.h
пример заголовка, который будет делать это правильно (см. ниже).
Например, stdio.h
не имеет такого #ifdef
Конечно, это так! Следуйте деньги след …
почему не всегда внешнеНужен?
Итак, в заключение, вам нужно сделать это только самостоятельно, если автор файла заголовка не сделал этого за вас.Когда автор файла заголовка сделал это, вам не нужно это делать.