如何用clang-tidy区分检查C语言静态与非静态全局变量命名规范?
配置clang-tidy区分静态与非静态全局变量命名规范问题
我正尝试配置clang-tidy以检查全局变量的正确命名规范,希望它能区分静态全局变量和非静态全局变量。示例代码如下:
int globalNonStatic = 1; /* Should be camelBack */ static int GlobalStatic = 0; /* Should be CamelCase */
但我找不到合适的readability-identifier-naming选项来区分二者。我曾尝试如下配置:
Checks: '-*,readability-identifier-naming' CheckOptions: - { key: readability-identifier-naming.GlobalVariableCase, value: camelBack } - { key: readability-identifier-naming.VariableCase, value: CamelCase }
这种类似的方式(GlobalFunctionCase/FunctionCase)曾成功区分静态与非静态函数,但运行时得到如下警告:
warning: invalid case style for global variable 'GlobalStatic' [readability-identifier-naming] static int GlobalStatic = 0; /* Should be CamelCase */ ^~~~~~~~~~~~ globalStatic
我还尝试了StaticVariableCase、LocalVariableCase选项,但都无效。是否存在某个未公开的选项可实现静态与非静态全局变量的不同风格检查?
补充说明:在LLVM问题追踪器上发现了相关问题(自2019年起至今未收到回复):LLVM Bug 42634
内容的提问来源于stack exchange,提问作者Bavo Van Achte
相关产品推荐
相关产品推荐

