当我在我的程序中只使用短整数时,最好使用:
void printVars(int x1, int x2, int x3)
或者
void printVars(short int x1, short int x2, short int x3)
作为我的功能的论据?
先感谢您。
当我在我的程序中只使用短整数时,最好使用:
void printVars(int x1, int x2, int x3)
或者
void printVars(short int x1, short int x2, short int x3)
作为我的功能的论据?
先感谢您。
如果您 100% 确定您永远不会使用比 short int 更大的整数,那么最好使用它,因为它可以节省 2 个字节(在大多数情况下,在大多数系统上,但不一定)。不使用比您需要的更多的资源确实总是一个好主意。不过,对于 mot 应用程序,差异可能可以忽略不计。
如果您想强调允许的值范围,我更喜欢short int
. 这样可以节省空间,并且可以清楚/更好地阅读允许的值。
int
在性能方面可能会更好,但我不会指望这一点。
我的建议:如果您确定这short int
是具有最佳匹配范围的类型,请使用它。
我会使用short
这样你的代码更加一致。另外最好做一个typedef
,以防您将来想更改您的类型。只需typedef short int Short
在您的程序中制作和使用它。稍后您将能够Short
在一个地方更改类型
与参数有关的最重要的事情是传达您的函数需要什么作为输入以及将产生什么作为输出。如果您的函数仅适用于 short 范围内的数字,请使用short
您的类型。你要问的是,如果你允许数字大于 short 的最大值会发生什么?这是一个错误吗?
传递空头或整数的性能影响可能可以忽略不计或不存在。除非它成为问题,否则不要担心性能。
如果你只使用short
s 那么传递short
函数参数是没有害处的,因为你不会丢失任何东西,但是使用 s 根本不会在内存占用或性能方面节省太多short
。
这个问题只能通过在您要运行的计算机上运行测试来真正回答。
在我的现代 Intel Ubuntu (2017) 上,速度差异在噪音中有所下降。将短裤推入堆栈似乎比将整数推入堆栈快 1%,+/- 约 1%。
大部分加速将来自将你的内存减半,这将节省那些大数据/神经网络处理程序的页面交换。