自动将 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++的主要内容,如果未能解决你的问题,请参考以下文章
将 c++ opencv IplImage imageData 和 widthStep 转换为 android opencv Mat