C ++函数参数,int short

时间:2013-04-23 12:10:11

标签: c++

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

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

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

作为我职能的论据?

提前谢谢。

6 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果你想强调允许的值范围,我更喜欢short int。这样可以节省空间,并且可以清楚/更好地读取允许值。

int在表现方面可能会更好,但我不会指望它。

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

答案 3 :(得分:0)

我会使用short,因此您的代码更加一致。如果您希望将来更改类型,最好制作typedef。只需制作typedef short int Short并在程序中使用它即可。稍后您可以在一个地方更改Short类型

答案 4 :(得分:0)

与参数最重要的一点是将您的函数需要作为输入进行通信,并将其作为输出。如果您的函数仅适用于短数范围内的数字,请使用short作为您的类型。您要问的是,如果允许的数字大于最大值,会发生什么?这是一个错误吗?

传递空头或整体的表现影响可能微不足道或根本不存在。除非出现问题,否则不要担心性能。

答案 5 :(得分:0)

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

在我的现代英特尔Ubuntu(2017)上,速度差异降低了。将短裤推入堆栈似乎比将ints推入堆栈快1%,大约+/- 1%。

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