首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

内核态下sscanf的警告信息,该怎么解决

2012-04-11 
内核态下sscanf的警告信息C/C++ codestruct XXX{unsigned int dchare[5]charf[13] }if (sscanf(&buf[44

内核态下sscanf的警告信息

C/C++ code
struct XXX{    unsigned int d;    char         e[5];    char         f[13]; }if (sscanf(&buf[44], " %d %s %s", &A.d, &A.e, &A.f) != 3)     //此行显示出警告信息{    printk("something error!\n");    return;}


经测试,strlen(buf) = 59;
显示出的警告信息:
warning: format ?s?expects type 鈉har *? but argument 4 has type 釵SP_CHAR (*)[5]?
warning: format ?s?expects type 鈉har *? but argument 5 has type 釵SP_CHAR (*)[13]?

在不修改结构体的前提下,应该怎么处理警告呢?

[解决办法]
if (sscanf(&buf[44], " %d %s %s", &A.d, &A.e, &A.f) != 3)
[解决办法]
if (sscanf(&buf[44], " %d %s %s", &A.d, A.e, A.f) != 3)
[解决办法]
e和f是数组所以e、f本身已经是数组首地址了,所以不可再做一次&取址。

热点排行