混合C/C++源代码:在C代码中获取sizeof(C++ struct)

use*_*084 2 c c++ compiler-errors compilation mixed-code

在这个项目中,我需要从C文件中获取头文件中结构的大小.

我不能在C文件中包含头文件,因为struct包含不能用C编译的类.

有任何想法吗?

Rob*_*obᵩ 5

在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)


kay*_*kay 5

你可以在.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)

所以你不会有函数调用的开销.