sscanf'转换在格式结束时缺少类型'

时间:2012-03-31 03:51:41

标签: c scanf

我从sccanf()收到此警告:

../../../../ext/oedipus/oedipus.c:211: warning: conversion lacks type at end of format

来自这一行:

sscanf(v, "%h", &s);

此处sshort

我知道我可以忽略这个警告,但到目前为止我是在免费警告,所以如果可能的话,我想让它保持沉默。什么是sscanf()期待不同?

1 个答案:

答案 0 :(得分:5)

您需要%hd使用short%h本身无效。来自man page

  

<强>ħ

     

表示转换将是 d i o u 之一x X n ,下一个指针是指向 short int unsigned short int <的指针/ em>(而不是 int )。

请不要忽视警告 - 它们通常意味着出现了问题。这个例子就是一个很好的例子 - 你的编译器似乎做了“正确的事情”,但依赖于未定义的行为总是一个坏主意。