c++函数参数,int短

C++ function argument, int short

本文关键字:int 参数 函数 c++      更新时间:2023-10-16

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

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

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

作为函数的参数?

提前感谢。

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

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

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

int在性能上可能更好,但我不会指望它。

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

我会使用short,这样你的代码更一致。此外,最好制作一个typedef,以防将来想要更改类型。只需创建typedef short int Short并在程序中使用它。稍后,您将能够在一个地方更改Short类型

处理参数时最重要的事情是传达函数需要什么作为输入并将产生什么作为输出。如果你的函数只处理short范围内的数字,那么使用short作为你的类型。你要问的是如果允许大于最大值的数字会发生什么?这是错误吗?

传递short或int的性能影响可能可以忽略不计或不存在。不要担心性能,除非它成为一个问题。

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

在我的现代英特尔Ubuntu(2017)上,速度差异在噪音中下降。将short类型压入堆栈似乎只比int类型压入堆栈快1%,+/-约1%。

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