C,让你又爱又恨

2.C语言中的关键字

2020-09-03  本文已影响0人  傻子online

sizeof:编译器让我们来看内存空间容量;

int,double,float等等一些关键字可以看成是让我们来限制内存大小

每个数据类型所代表的内存大小都不同(由编译器决定)

(这里应该cpu,当时画错了,兄弟姐妹们,见谅!)

硬件芯片操作最小单位为:bit(位)  1/0  1代表高电平,0代表低电平

软件操作中最小单位为byte(字节):8bit==1B(若是用bit做单位,软件开发

及其繁琐) 一般用char

char是硬件能在软件中体现出的最小单位;

char场景:硬件数据处理的最小单位:

例子:char buf[x]    int buf

          假设有123这个数据,如果用int接受,所需内存为4B,则会造成浪费,

          char只有1B;

8bit最多能代表256个数字(0与1的排列组合,2的8次方);char最多就是1B,也就是8bit,若char a=300,则已经造成溢出了。

这又涉及到编译器最优处理大小:系统一个周期,所能接受的最大处理单位;例如一个系统一个周期能够处理32bit的数据,也就是32位系统,就是 4B,若是能够把这32位都跑满,性能最高,低于32都不行,同时int定义:

    32bit=4B=int;(32位系统)或    16bit=2B=int;(16位系统)

所以int在各种处理器中的大小都是不同的。如果用于数据的处理,int比char好,int容量大,还能达到最优处理大小,在汇编语言中int 比char的效率高。

char更多用于硬件处理,因为后期你需要面临各种引脚的高低电平设置,而这恰恰是嵌入式开始入坑的基础。

再说到前面的,若这个处理器是2B的,2B=16bit,所能代表的数最大为65535。但是我想保存int a=66535,怎么办?

我们可以在66535加一个L,就是int a=66535L(L大小写无所谓)相当于一个long字符,需要用到进位标志。

链接:http://note.youdao.com/noteshare?id=f898d5ee72a5b3d9c4dd34142fd8d6d9&sub=7C6F89569F2144A0B3E2B784BE36ADAD

上一篇下一篇

猜你喜欢

热点阅读