gol*_*ean 46 c c++ code-translation
我有一些C++代码.在代码中定义了许多类,它们的成员函数,构造函数,这些类的析构函数,很少的模板类和许多C++东西.现在我需要将源代码转换为普通的C代码.
我有以下问题:
有没有工具将C++代码和头文件转换为C代码?
我必须做的代码完全重写(我将不得不删除构造函数,析构函数和代码搬进了init(),deinit()功能;改变类的结构,使现有的成员函数中的新定义的结构函数指针,然后调用这些函数使用函数指针等.)?
如果我必须自己手动转换它,在进行从C++到C的转换时,我需要注意哪些C++特定的代码数据构造/语义?
MSa*_*ers 32
确实有这样一个工具,Comeau的C++编译器..它会生成无法手动维护的C代码,但这没问题.您将维护C++代码,并且只是即时转换为C.
pla*_*ler 16
http://llvm.org/docs/FAQ.html#translatecxx
PS:我根本没用过它.让我知道它是否有效.
虽然您可以在C中执行OO(例如,通过向theType *this方法添加第一个参数,并手动处理类似vtables的多态性),但这在设计中从未特别令人满意,并且看起来很丑陋(即使有一些预处理器黑客攻击).
我建议至少要看一个重新设计,以比较这将如何工作.
总的来说,很大程度上取决于关键问题的答案:如果你有工作的C++代码,你为什么要C代替?