use*_*084 2 c c++ compiler-errors compilation mixed-code
在这个项目中,我需要从C文件中获取头文件中结构的大小.
我不能在C文件中包含头文件,因为struct包含不能用C编译的类.
有任何想法吗?
在C++中提供实用程序功能:
extern "C" size_t ReturnSizeOfMyStruct(void) {
return sizeof(MyStruct);
}
Run Code Online (Sandbox Code Playgroud)
然后在C代码中调用它:
extern size_t ReturnSizeOfMyStruct(void);
size_t howBig = ReturnSizeOfMyStruct();
Run Code Online (Sandbox Code Playgroud)
你可以在.h文件中声明:
extern const size_t SIZE_OF_MY_STRUCT;
Run Code Online (Sandbox Code Playgroud)
并SIZE_OF_MY_STRUCT在.cpp文件中定义为:
extern const size_t SIZE_OF_MY_STRUCT = sizeof(MyStruct);
Run Code Online (Sandbox Code Playgroud)
所以你不会有函数调用的开销.