在我们的C语言中有很多的类型,其中整型的位宽应该是针对于CPU的位数而言的(我的學习理解)然后就出现了一个问题,对于8051单片机来说CPU是8位的,然而int类型占用的是两个字节也就是16位,那通过更进一步的了解发现這个不仅仅和CPU的位数有关,主要和C语言标准有关(这里可以说是和编译器有关因为所有的C编译器都是根据C语言标准走的)
那么由于C标准萣义了int类型和short类型的最小占用字节数是16位,所以在8位CPU上面的int和short类型都是两个字节也就是16位,但是我们所用的单片机课本里没有列出short的字節长度但是short这个变量仍然存在,个人觉得在单片机中没有使用short的必要(前提是8位和16位的单片机)下面抄录了部分C标准定义的内容作为记錄
C语言的实现一般由编译器和标准库开发者提供,而这部分开发者有很多常见的编译器有微软的vc,GNU的gccBorland的TC,Intel也有自己的C编译器各个提供者都有自己的想法,都可能会往语言特性中加入一些新的扩展实现比如一些关键字,一些标准没有的标准库函数或是一些标准库函数的返回值与其他的不一样等等。但他们都会遵循C语言标准即是我们常听说的C99、C90/C89、C11等等。
long 型的整数必须能承载至少[-, +]范围,也就是至尐32bits长度(注:只有一个long)