在 C 中使用 short 是一种不好的做法

Is using short in C a bad practice

我有一个内存敏感项目,它使用 int 来存储图形的密集前置树中的顶点索引。 (您使用例如 Bellman Ford 生成的东西)。我知道一个事实,即我不会拥有超过 10000 个顶点的图形,并且数据类型在创建后是不可变的。

那么在我的情况下替换

是不是一个坏习惯
int predecessors[blah];

short predecessors[blah];

如果我的作品被用作图书馆。

  1. 避免过早优化。衡量使用 short 而不是 int 的影响,然后根据该信息做出决定。

  2. 正如 @HolyBlackCat 所说 - 考虑使用 typedef(或类似的)以便您可以更改基础类型(即 shortint) 如果要求发生变化。

  3. 如果您正在使用 short,请添加健全性检查以避开某些人,有一天在您的库中提供 100.000 个顶点但没有意识到它无法处理这些(直到无声故障变成非常严重的故障)非无声的昂贵设备大声撞到某物)。

  4. 明确记录您最多只能处理 X 个顶点。