C++ C++;函数参数,int-short

C++ C++;函数参数,int-short,c++,C++,当我在程序中只使用短整数时,是否最好使用: void printVars(int x1, int x2, int x3) 或 作为我函数的参数 提前谢谢。如果您只使用shorts,那么传递short函数参数没有什么害处,因为您不会丢失任何东西,但使用shorts不会节省太多内存占用或性能 如果您100%确定永远不会使用比short int更大的整数,那么最好使用它,因为它可能会节省2个字节(在大多数情况下,在大多数系统上,但不一定如此)。不要使用超过你需要的资源,这的确一直是个好主意 不过,对

当我在程序中只使用短整数时,是否最好使用:

void printVars(int x1, int x2, int x3)

作为我函数的参数


提前谢谢。

如果您只使用
short
s,那么传递
short
函数参数没有什么害处,因为您不会丢失任何东西,但使用
short
s不会节省太多内存占用或性能

如果您100%确定永远不会使用比short int更大的整数,那么最好使用它,因为它可能会节省2个字节(在大多数情况下,在大多数系统上,但不一定如此)。不要使用超过你需要的资源,这的确一直是个好主意
不过,对于mot应用程序,这种差异可能可以忽略。

如果您想强调允许的值范围,我更喜欢
短int
。这节省了空间,并使允许的值更清晰/可读

int
在性能方面可能更好,但我不指望这一点


我的建议:如果您确定
short int
是具有最佳匹配范围的类型,那么就使用它。

我会使用
short
,这样您的代码更一致。另外,如果您将来想更改您的类型,最好创建一个
typedef
。只需使
typedef short int short
并在程序中使用它。稍后,您将能够在单个位置更改
Short
类型

对参数所做的最重要的事情是将您的函数需要作为输入和输出进行通信。如果您的函数仅适用于短字符范围内的数字,则对您的类型使用
short
。你要问的是,如果你允许数字短于最大值,会发生什么?这是一个错误吗


通过短路或INT的性能影响可能可以忽略不计或不存在。不要担心性能,除非它成为一个问题。

只有在您将要运行的计算机上运行测试才能真正回答这个问题

在我的现代英特尔Ubuntu(2017)上,速度差异在噪音中降低。将短裤推到堆栈上似乎只比将整数推到堆栈上快1%,+/-大约1%


大部分加速将来自将内存减半,这将节省那些大数据/神经网络程序上的页面交换。

在什么意义上更好?为什么您的程序只使用短内存?您知道使用
short
而不是
int
对其速度有何影响吗?你有这么多的数据,你必须这样做,以适应它到内存中吗?别忘了,
int
是体系结构的“自然”大小,因此除非受内存限制,否则没有理由使用
short
。它可能会节省两个字节。
int
必须不小于
short
,但不必大于。
void printVars(short int x1, short int x2, short int x3)