标签: c++ c
我有很多文件(约50MB),其中包含0到255之间的数字。
我将它们加载为unsigned char。当我在它们之间进行减法时会发生什么?结果总是一个整数(sizeof()给出4)即使没有溢出。
答案 0 :(得分:5)
正式地,他们被提升为int(在char小于int的常规机器上),然后执行算术运算。
int
char
实际上,编译器可能会注意到结果已转换回char,因此只发出字节大小的机器代码。
关于效率,如果重要,那么衡量。