namespace someNameSpace {
extern "C" void doSomething()
{
someOperations();
}
}
Я хочу запустить doSomething()
в среде С++ и C.
Является ли someNameSpace
все еще инкапсулирующим doSomething()
, если я выставляю его в ссылку extern "C"
?
Есть ли хороший способ обмена функциями между С++ и C, избегая заражения глобального пространства имен на стороне С++?
Изменить. Поскольку этот код используется в основном в режиме С++, тогда как ссылка C используется только для тестирования, я думаю, что это лучший способ сделать это.
namespace someNameSpace {
#ifdef COMPILE_FOR_C_LINKAGE
extern "C"
#else
extern "C++"
#endif
{
void doSomething()
{
someOperations();
}
}
}