自动将 C 代码的转换元素移植到 C++

Posted

技术标签:

【中文标题】自动将 C 代码的转换元素移植到 C++【英文标题】:Automatically port conversion elements of C code to C++ 【发布时间】:2009-08-27 21:36:41 【问题描述】:

有没有什么工具可以自动转换下面的c风格代码

A *a = b;

A *a = (A*)b;

谢谢, 詹姆斯

【问题讨论】:

在将 C 风格的代码转换为 C++ 时,也可以使用 C++ 风格的强制转换:A a* = static_cast(b); 几乎是***.com/questions/1272570/…的骗子 我认为这个问题是问是否可以用 static_cast 替换 (A*) 【参考方案1】:

假设这是为了消除编译器错误,我可能会自己写一个。在源代码上运行编译器,并将错误消息重定向到文件。过滤掉它抱怨类型的错误。例如,在 gcc 中,它们将如下所示:

a.cc:3: error: invalid conversion from ‘int’ to ‘int*’

这将为您提供所需的一切:文件和行号,以及您需要转换为的类型(即int*)。在行中找到一个可能的位置来插入强制转换(即在 = 字符之后,或在 return 语句之后),然后重试。跟踪您已经编辑的行,并跳过它们进行人工干预。

【讨论】:

是的,这是个好建议。不过,在我自己动手之前,我目前正在寻找一些预先存在的工具。

以上是关于自动将 C 代码的转换元素移植到 C++的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Alchemy 将 C++ 移植到 swf?

C++ API 到 C# 的自动转换?

将 C++ 类移植到 PyQt

将 c++ opencv IplImage imageData 和 widthStep 转换为 android opencv Mat

如何将 C++ 数字格式转换为 C# 数字格式?

将 C++ opencv 移植到 Python - 数组问题