原创 标准C里面有“位域”(bitfield)

2006-10-20 18:27 2924 7 7 分类: MCU/ 嵌入式
但一般编译器的实现效率并不高,所以我只使用与或非异或这些位操作自己管理位标志。

unsigned short等是C语言的标准数据类型,至于它所能表示的数值范围,ANSI标准头文件limits.h(在目录C:\WinAVR\lib\gcc- lib\avr\3.3.1\include下面)里面有定义,并且是可移植的,浮点数定义在float.h中。

ANSI C语言规定,char类型肯定是8位1字节的,int类型至少能够表示-32767到+32767的数值范围(注意,不是-32768,因为标准并不强制要求机器使用补码数),long类型至少能表示-(2^32-1)到+(2^32-1)范围内的数值。另外,并没有规定char类型缺省是有符号还是无符号。

至于标准的bool类型,C99当中有新加的stdbool.h头文件,GCC支持,在.c文件中#include 之后,就可以用小写字母的bool、true、false。

C99的bool型在AVR GCC中实现为单字节。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /3 下一条