extern "C"
полезно только для функций, а не для данных.Он определяет способ декорирования или искажения функции.Украшение также зависит от используемого соглашения о вызовах.Классы не могут использоваться из C, равно как и функции, которые имеют классы в качестве параметра, даже если они находятся внутри блока extern "C"
.
* extern "C"
имеет смысл, когда библиотека C предназначена для использования C иКод C ++.
В заключение, иметь класс внутри extern "C"
не имеет смысла, x
- это просто базовый тип, наличие внутри или снаружи не имеет значения.Обычный способ использовать эту функцию - поместить весь контент заголовка в такой блок.Наличие int
объявления в заголовке не очень хорошая идея!Это создаст переменную для каждой единицы перевода и вызовет проблемы во время ссылки ... Не уверен, что вы намереваетесь делать с кодом, аналогичным тому, который вы опубликовали.