当前位置: 技术问答>linux和unix
内核态下sscanf的警告信息
来源: 互联网 发布时间:2017-01-16
本文导语: 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; } 经测试...
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)
|
e和f是数组所以e、f本身已经是数组首地址了,所以不可再做一次&取址。
|
if (sscanf(&buf[44], " %d %s %s", &A.d, &A.e, &A.f) != 3)