【发布时间】:2010-02-17 04:06:31
【问题描述】:
我正在从标准输入读取 MAC 地址(以标准十六进制表示法,例如 00:11:22:33:44:55)并将它们转换为 6 字节变量 hw_addr 作为小数:
u8 hw_addr[6];
scanf("%2x:%2x:%2x:%2x:%2x:%2x", &hw_addr[0], &hw_addr[1], &hw_addr[2], &hw_addr[3], &hw_addr[4], &hw_addr[5]);
唯一的问题是我收到了 6 个 scanf 警告:
warning: format '%2x' expects type 'unsigned int *', but argument 3 has type 'u8 *'
.....
有什么方法可以在不浪费每个字段的 int 的情况下摆脱这些警告?
【问题讨论】:
-
为什么需要保存这些字节?
-
使用
unsigned hw_addr[6]或@Potatoswatter 回答。