我有这个c文件
#include "pointer.h"
int switcher(int * i) {
int a = *i;
switch (a) {
case 1:
return 0;
default:
return 1;
}
}
并且相关的标题只包含一行
int switcher(int * i);
这使用 clang 编译。
如果我现在使用 clang-tidy (clang-tidy -fix pointer.c -checks=* -header-filter=.* ) 我得到以下结果
#include "pointer.h"
int switcher(const int * i) {
int a = *i;
switch (a) {
case 1:
return 0;
default:
return 1;
}
}
和标题
#ifndef _HOME_GWE_PROJEKTE_CLANG_TIDY_POINTER_H
#define _HOME_GWE_PROJEKTE_CLANG_TIDY_POINTER_H
int switcher(int * i);
#endif
函数的签名已从 (int i) 更改为 (const int i),这很好。头文件也已更改(保护),但签名保持不变。因此。代码不再编译。
我的 compile_commands.json 看起来像这样
[
{
"directory": "/home/gwe/projekte/clang/tidy",
"command": "clang -c pointer.c -I.",
"file": "pointer.c"
}
]
这是一个整洁的错误还是我做错了?谢谢你的帮助?
最好的问候,乔治