我正在研究将大量(>10M行)的C++代码移植到64位的方法。我已经查看了静态代码分析器和编译器标志,现在正在寻找宏或其他工具,可以进行常见且重复的更改。
我编写了一些正则表达式来测试它们在实践中的效果,如预期的那样,它们非常有效。尽管如此,构建这些表达式需要一段时间,因此我想看看是否有任何这样的表达式列表或软件工具可以自动执行更改。
以下是要匹配和修复的典型代码示例。(为了澄清,这些行不是表示单个代码块,而是从不同位置提取的行。)
我编写了一些正则表达式来测试它们在实践中的效果,如预期的那样,它们非常有效。尽管如此,构建这些表达式需要一段时间,因此我想看看是否有任何这样的表达式列表或软件工具可以自动执行更改。
以下是要匹配和修复的典型代码示例。(为了澄清,这些行不是表示单个代码块,而是从不同位置提取的行。)
int i = 0;
long objcount;
int count = channels.count(ch);
for (int k = 0; k < n; k++) { /*...*/ }
目标不是彻底将代码移植到64位,而是对代码进行第一次检查,以减少需要手动检查的代码量。有些必要的更改可能会被忽略,有些错误的更改可能会被误操作,但这些应该尽量减少。
Visual Studio是用于转换工作的IDE,因此与VS兼容良好的工具是一个加分项。成本不是问题。
int count
可能太小了,无法容纳channels.count
的size_t
返回值。在for循环中,int k
可能会在达到long n
的大小之前就被包装。等等。 - Zan Lynx