gpt4 book ai didi

c++ - 通过 bash 脚本查找和修改函数定义 (C++)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:10:15 25 4
gpt4 key购买 nike

目前我正在从事一个相当大的项目。为了提高我们代码的质量,我们决定对每个函数强制执行返回值(错误代码)处理。 GCC 支持关于函数返回值的警告,但是函数定义必须在以下标志之前。

static __attribute__((warn_unused_result)) ErrorCode test() { /* code goes here */ }

我想实现一个解析整个源代码并发出警告的 bashscript,以防万一

__attribute__((warn_unused_result))

不见了。请注意,所有需要这种修改的函数都会返回一个名为 ErrorCode 的类型。您认为这可以通过 bash 脚本实现吗?

最佳答案

也许您可以将 sed 与正则表达式一起使用。以下内容适用于我尝试过的几个测试文件:

sed -r "s/ErrorCode\s+\w+\s*(.*)\s*\{/__attribute__((warn_unused_result)) \0/g" test.cpp

如果您不熟悉正则表达式,该模式基本上可以转换为:

ErrorCode、一些空格、一些字母数字(函数名称)、可能是一些空格、左括号、任何内容(参数)、右括号、可能是一些空格、左花括号。

如果找到此模式,则以 __attribute__((warn_unused_result)) 为前缀。请注意,这仅在您始终将左大括号与参数放在同一行并且函数声明中没有换行符时才有效。

关于c++ - 通过 bash 脚本查找和修改函数定义 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32119952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com