C_and_CPP 版 (精华区)
发信人: Sun (大灯泡), 信区: C_and_CPP
标 题: C语言中定义BYTE的最好方法
发信站: 哈工大紫丁香 (Sun May 22 21:41:37 2005), 转信
很多时候我们需要定义一个只占一个byte的变量,通常就定义为unsigned char,甚至char了。这样并不具有可移植性。
今天一个学生问我这个问题,我查找了C FAQ和C99,并在comp.lang.c询问后,得到这样的结论:
char的大小C99说:
An object declared as type char is large enough to store any member of the basic execution character set.
也就是说C99并没有要求它必须是1个字节,虽然现在绝大多数编译器都把它处理为1个字节。char实际的大小要从CHAR_BIT获得。
那么如果确切地定义一个字节,应该用uint8_t这个类型。
--
int main(void){char p[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.\
0123456789"; char *q="tDJA3SfoP"; int i=sizeof
p,l;char *strchr ();int putchar ();while
(*q){ putchar(p[i=(i^ (l=
strchr(p,*q++)-p))&0x3F ]);i=l>i?l:i;}return 0;}
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.239.80]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.117毫秒