Skip to content
败犬日报 2026-01-26

败犬日报 2026-01-26

1. 检查函数传参传错顺序

clang-tidy 有这个检查 https://clang.llvm.org/extra/clang-tidy/checks/bugprone/easily-swappable-parameters.html

解决方法也很简单,把几个参数打包成一个结构体参数 xxxparams。


最近有一篇 C 语言提案 strong typedef,用来解决类似的问题。

https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3320.htm

c
[[strong]] typedef int Width;
[[strong]] typedef int Height;
void draw_rect(Width w, Height h);

Width w = 3;
Height h = 4;
draw_rect(w, h);
// draw_rect(h, w);

不过这个提案放到 C++ 的问题很多 https://discourse.llvm.org/t/rfc-clang-adding-strong-typedefs/88843,不用期待了。