这么多书说我们绝不能浪费一些算术和函数定义。我看到很多从0到255的小数字被定义为char类型变量,甚至更大的正数被定义为unsigned short int类型。
为什么我们不使用unsigned short int或char类型而不是int来表示返回值?
我试过了:
char main(){return 0;}
没关系。
答案 0 :(得分:4)
将short
甚至char
优先于int
返回时,很少有任何节省。在绝大多数C实现中,机器寄存器将用于保存返回值,返回short
而不是int
的唯一区别是寄存器的一部分将保持未使用状态。 (顺便说一句,这也是main
为char
"返回short
"为你工作的原因,即使标准不保证会这样做。)
实际上,返回short
的唯一原因是,当您使用特定算法时,明确有理由使用int
而不是SET NOCOUNT ON // THIS ONE;
SELECT * FROM <tbl_name> as #temp
...
s,而且&# 39; s不太常见。
对于记录,同样可以说函数参数。
答案 1 :(得分:1)
如果您学习了汇编语言和微机原理,您就会知道,这是访问数据的快捷方式(一个周期)。
对于32位或64位CPU,一个指令周期可以获取/设置32位或64位数据。 如果变量定义为int,则CPU可以将其值设置/设置一个周期。如果对32位CPU使用char或short,则CPU需要更多周期来获取/设置其值。
如果您使用的是8位或16位CPU,则会有所不同。但通常int的长度与CPU的位相同,所以整数是要访问的快速类型。