在这个网页上,对 unsigned short state 的评论:
用于减少内存使用(尽管与使用 int 相比,生成的可执行文件可能更大并且可能更慢
为什么是这样?
我认为“可能更慢”这个词太难了。
一个理论事实是:
计算至少以int大小完成,例如
short a = 5;
short b = 10;
short c = a + b;
Run Code Online (Sandbox Code Playgroud)
此代码片段包含 3 个隐式转换。a并b转换为int和添加。其结果是从转换回int到short。你无法避免它。C++ 中的算术至少使用int大小。这称为整数提升。
实际上,编译器会避免大多数转换。优化器也会移除很多转化。