在C中使用short是一种糟糕的做法吗

在C中使用short是一种糟糕的做法吗,c,int,short,C,Int,Short,我有一个内存敏感的项目,它使用ints在图的密集前置树中存储顶点的索引。(使用贝尔曼·福特(Bellman Ford)等工具生成的内容)。我知道一个事实,我不会有超过10000个顶点的图,而且一旦创建,数据类型是不可变的 那么,在我的情况下,替换是一种不好的做法吗 int predecessors[blah]; 与 如果我的作品被用作图书馆 避免过早优化。测量使用short而不是int的影响,然后根据该信息做出决定 > As>强> @ HOLYBLASCAT/ -考虑使用TyPulf(或类似

我有一个内存敏感的项目,它使用ints在图的密集前置树中存储顶点的索引。(使用贝尔曼·福特(Bellman Ford)等工具生成的内容)。我知道一个事实,我不会有超过10000个顶点的图,而且一旦创建,数据类型是不可变的

那么,在我的情况下,替换是一种不好的做法吗

int predecessors[blah];

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

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

  • <> > As>强> @ HOLYBLASCAT/<强> -考虑使用TyPulf(或类似),这样您就可以在需要更改的情况下更改基础类型(即<>代码> Stase到int >代码>)。p>
  • 如果您使用的是
    short
    ,请添加健全性检查以避开某人,有朝一日会在库中输入100000个顶点,但没有意识到它无法处理这些顶点(直到昂贵的设备大声碰撞,导致无声故障变为非常非无声故障)

  • 清楚地记录您最多只能处理X个顶点


  • 我想你应该
    typedef short vertex\u id\t以便能够轻松替换类型。否则,只要它提供了真正的性能/内存消耗改善,我看它没有问题。寻找最佳实践来代替常识是一种不好的做法。我很高兴。如果你不得不两次撤销对你的问题的相同编辑,由不同的人进行,那么我建议你开始思考为什么你的问题似乎会邀请编辑。。。(我承认我只是在你解开我的后才意识到编辑+撤销的上一次迭代。)如果你想将计数的宽度限制在16位,请使用
    uint16\u t
    (或者
    int16\u t
    ,如果你需要-1作为某种标记,0xFFFF就不行了)。一般来说,问题的答案是“使用X是否是一种不好的做法”,其中X是语言的一个组成部分,表示“不,视情况而定”。
    short predecessors[blah];