在大型代码库中替换C ++基本类型

时间:2018-12-05 14:51:33

标签: c++

该项目有约100万行代码。由于未严格指定“ long”类型的大小,并且取决于体系结构,因此有必要将其替换为uint32_t / int32_t。它也适用于所有变体,例如unsigned long,signed long int等: https://en.cppreference.com/w/cpp/language/types

我正在寻找一个建议,以查找/替换它们,而不破坏注释和变量名。也许它可以是智能正则表达式或python mako脚本?

1 个答案:

答案 0 :(得分:0)

您可能会冒险进行简单的搜索和替换。

应该以正确的顺序工作:unsigned long long,然后是long long,然后是unsigned long,然后是long,并带有正则表达式功能来考虑{{1 }}。

请注意,确保没有错误的唯一方法是使用clang或其他解析器并解析完整的代码,这是一种更加困难的任务方式。

可以在支持它们的搜索和替换编辑器中使用的正则表达式示例如下:

int