过去几天我一直在将 > 1000 个 C++ 代码文件“降级”为 C。 到现在为止一切顺利。突然我和一个类(class)面对面......
编译器首先在头文件中指出错误:
class foobar {
foo mutex;
public:
foobar() {
oneCreate(&mutex, NULL);
}
~foobar() {
oneDestroy(mutex);
mutex = NULL;
}
void ObtainControl() {
oneAcquire(mutex);
}
void ReleaseControl() {
oneRelease(mutex);
}
};
当然,C 文件必须利用这一点
foobar fooey;
fooey.ObtainControl();
我什至不知道从哪里开始....帮忙?
最佳答案
将 foobar 变成一个普通的结构体
struct foobar {
goo mutex;
};
创建您自己的“构造函数”和“析构函数”作为您对该结构调用的函数
void InitFoobar(foobar* foo)
{
oneCreate(&foo->mutex);
}
void FreeFoobar(foobar* foo)
{
oneDestroy(foo->mutex);
}
struct foobar fooStruct;
InitFoobar(&fooStruct);
// ..
FreeFoobar(&fooStruct);
等等
关于c++ - 将 C++ 类转换为 C 结构(以及更多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5872915/