首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >hh和H格式说明需要什么?

hh和H格式说明需要什么?
EN

Stack Overflow用户
提问于 2014-02-14 14:41:09
回答 2查看 13.4K关注 0票数 12

在下面的代码中,mac_str是char指针,macuint8_t 数组

代码语言:javascript
运行
复制
 sscanf(mac_str,"%x:%x:%x:%x:%x:%x",&mac[0],&mac[1],&mac[2],&mac[3],&mac[4],&mac[5]);

当我尝试上面的代码时,它给了我一个警告:

代码语言:javascript
运行
复制
warning: format ‘%x’ expects argument of type ‘unsigned int *’, but argument 8 has type ‘uint8_t *’ [-Wformat]

但我在他们指定的代码中看到了

代码语言:javascript
运行
复制
sscanf(str,"%hhx:%hhx:%hhx:%hhx:%hhx:%hhx",&mac[0],&mac[1],&mac[2],&mac[3],&mac[4],&mac[5]);

这并没有给出任何警告,但两者的作用是一样的。

为什么要使用hhx而不仅仅是x

EN

回答 2

Stack Overflow用户

发布于 2014-02-14 14:49:21

hh是一个长度修饰符,它指定参数的目标类型。转换格式说明符x的默认设置是unsigned int*。使用hh,它变成了unsigned char*signed char*

有关详细信息,请参阅表herein

票数 6
EN

Stack Overflow用户

发布于 2014-02-14 14:48:04

hhx将输入转换为无符号字符,而x将转换为无符号int。而且,由于uint8_t是类型为unsigned char的类型,所以hhx修正了警告。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21782244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档