在打开警告的桌面上使用 GCC -Wconversion
,很明显s 在使用数字文字的数学运算期间short
被提升为s:int
unsigned short i = 10; // Obviously truncates to short immediately
unsigned short j = 30; // Same here
i = j + 2; // Warnings imply j gets promoted to int here, demands cast
在 ARM 目标上,规则是“短裤总是更快”,在几乎所有数学运算(尤其包括文字)期间,它们被提升为int
s 进行运算是否仍然正确?
short
如果是这样,除了让编译器帮助您检查边界是否合理之外,还有什么理由使用s 吗?我没有处理大量的短裤,所以存储空间似乎不是问题(或者是吗?)。
注意。这是音频处理,所以我不是为了它而优化,确实需要考虑这一点。