【发布时间】:2009-08-27 21:36:41
【问题描述】:
有没有什么工具可以自动转换下面的c风格代码
A *a = b;
到
A *a = (A*)b;
谢谢, 詹姆斯
【问题讨论】:
-
在将 C 风格的代码转换为 C++ 时,也可以使用 C++ 风格的强制转换:A a* = static_cast(b);
有没有什么工具可以自动转换下面的c风格代码
A *a = b;
到
A *a = (A*)b;
谢谢, 詹姆斯
【问题讨论】:
假设这是为了消除编译器错误,我可能会自己写一个。在源代码上运行编译器,并将错误消息重定向到文件。过滤掉它抱怨类型的错误。例如,在 gcc 中,它们将如下所示:
a.cc:3: error: invalid conversion from ‘int’ to ‘int*’
这将为您提供所需的一切:文件和行号,以及您需要转换为的类型(即int*)。在行中找到一个可能的位置来插入强制转换(即在 = 字符之后,或在 return 语句之后),然后重试。跟踪您已经编辑的行,并跳过它们进行人工干预。
【讨论】: