使用 short 和 long 代替 int 和 double (C++)

普亚

使用 short 和 long 而不是 int 和 double 有好处吗?除了 int 和 double 占用更多存储空间?我的教授在没有解释的情况下惩罚使用 int 和 double 的代码。在我使用的几本教科书中,我并没有真正找到充分的理由。它们在哪里更有用?例如,这是我代码中的众多功能之一

    void randDir(int& x, int& y){
            do{
                x = rand() % 4 - 1;
                y = rand() % 4 - 1;
                if(x == 2) x=0;
                if(y == 2) y=0;
            }while(x == 0 && y == 0);
  }  

这就是我教授想要的

    void randDir(short& x, short& y){
    do{
        x = rand() % 4 - 1;
        y = rand() % 4 - 1;
        if(x == 2) x=0;
        if(y == 2) y=0;
    }while(x == 0 && y == 0);
}
Brian Bi

使用的唯一好处short是占用空间少。如果您正在为内存非常紧张的环境编程,或者您有大量数字,或者您的数据将离开程序的地址空间(例如,要保存到磁盘或通过网络传输),那么这可能很重要. 在其他情况下,由于处理器架构的设计方式,使用非int必要的类型实际上可能会减慢程序的速度见例如:

如果您需要一种与您认为的大小完全相同的类型,short为了存储一些位模式或类似的东西,您应该使用精确宽度类型之一,例如std::int16_t, not short所以这通常不是使用short.

可能您的 C++ 讲师很久以前就在每个字节都很重要的环境中学习编码,并错误地认为现在仍然如此。可悲的是,这种先入为主的观念非常普遍。(其他症状包括禁止异常和禁止使用标准库容器)。在这种情况下,您通常应该意识到聪明人经常会说愚蠢的话。Stack Overflow 是获取有关当前最佳实践的信息的好地方,这里列出的书籍也是如此:The Definitive C++ Book Guide and List

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章