gpt4 book ai didi

c++ - 使用 short 和 long 而不是 int 和 double (C++)

转载 作者:行者123 更新时间:2023-11-28 01:41:36 25 4
gpt4 key购买 nike

使用 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);
}

最佳答案

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

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

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

关于c++ - 使用 short 和 long 而不是 int 和 double (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46900221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com