为什么我们不使用短整数来表示返回值?

时间:2017-03-24 02:44:43

标签: c types return

这么多书说我们绝不能浪费一些算术和函数定义。我看到很多从0到255的小数字被定义为char类型变量,甚至更大的正数被定义为unsigned short int类型。

为什么我们不使用unsigned short int或char类型而不是int来表示返回值?

我试过了:

char main(){return 0;}

没关系。

2 个答案:

答案 0 :(得分:4)

short甚至char优先于int返回时,很少有任何节省。在绝大多数C实现中,机器寄存器将用于保存返回值,返回short而不是int的唯一区别是寄存器的一部分将保持未使用状态。 (顺便说一句,这也是mainchar"返回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的位相同,所以整数是要访问的快速类型。