首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

BYTE 是否就是8 bit的 unsigned int ?该如何处理

2012-03-08 
BYTE 是否就是8 bit的 unsigned int?刚才的帖子还是有些不懂 ,http://topic.csdn.net/u/20080401/18/3bdad

BYTE 是否就是8 bit的 unsigned int ?
刚才的帖子还是有些不懂 ,
http://topic.csdn.net/u/20080401/18/3bdad7d4-fb0c-472e-88be-6aec1c2c4639.html?seed=1455747386




C/C++ code
 //想把ip四个数放到数组里去    char *str="192.168.1.1";    char *str1="192.168.1.2";    BYTE a[4]={1,2,3,4};    BYTE b[4]={2,3,4,5};    sscanf(str,"%d.%d.%d.%d",&a[0],&a[1],&a[2],&a[3]);    sscanf(str1,"%d.%d.%d.%d",&b[0],&b[1],&b[2],&b[3]);

//这样就不对,但是BYTE换成 int 就行了 ,但是BYTE放得下192(0~256)啊 ,BYTE理论上占8bit 不就是8bit的int么?谢谢

[解决办法]
探讨
BYTE是unsigned char.
针对%d的scanf的目标区域应该是4个字节,但是char只有1个字节,所以在写入的时候栈空间被破坏了,所以会报错。

[解决办法]
探讨
引用:
BYTE是8位无符号整数

楼主的问题应该是sscanf的问题


那你解释下为什么换成int就可以了呢?

热点排行
Bad Request.