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

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

A *a = b;

A *a = (A*)b;

谢谢, 詹姆斯

【问题讨论】:

  • 在将 C 风格的代码转换为 C++ 时,也可以使用 C++ 风格的强制转换:A a* = static_cast(b);
  • 我认为这个问题是问是否可以用 static_cast 替换 (A*)

标签: c++ c casting


【解决方案1】:

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

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

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

【讨论】:

  • 是的,这是个好建议。不过,在我自己动手之前,我目前正在寻找一些预先存在的工具。
猜你喜欢
  • 1970-01-01
  • 2011-09-11
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
相关资源
最近更新 更多