unsigned char减法效率

jmf*_*ecp 1 c c++

我有很多文件(大约50MB),其中包含0到255之间的数字.

我将它们加载为unsigned char.当我在它们之间进行减法时会发生什么?结果总是一个整数(sizeof()给出4)即使没有溢出.

Che*_*Alf 5

正式地,它们被提升为int(在通常的char小于的机器上int),然后执行算术运算.

在实践中,编译器可能会注意到结果被转换回char,因此只发出字节大小的机器代码.

关于效率,如果重要那么测量.