我从sccanf()
收到此警告:
../../../../ext/oedipus/oedipus.c:211: warning: conversion lacks type at end of format
来自这一行:
sscanf(v, "%h", &s);
此处s
是short
。
我知道我可以忽略这个警告,但到目前为止我是在免费警告,所以如果可能的话,我想让它保持沉默。什么是sscanf()
期待不同?
答案 0 :(得分:5)
您需要%hd
使用short
。 %h
本身无效。来自man page:
<强>ħ强>
表示转换将是 d , i , o , u ,之一x , X 或 n ,下一个指针是指向 short int 或 unsigned short int <的指针/ em>(而不是 int )。
请不要忽视警告 - 它们通常意味着出现了问题。这个例子就是一个很好的例子 - 你的编译器似乎做了“正确的事情”,但依赖于未定义的行为总是一个坏主意。