#include #include
您好,我想知道为什么这个程序不执行。 好像我一直无法正常执行scanffunction。 我得到的错误是:
error:忽略使用属性warn_unused_result声明的scanf的返回值
注意:我知道有一种更有效的方法来编写我当前的程序,但这是不重要的。 我想知道这个错误意味着什么,以及为什么我一直得到它并可能是一个解决方案。 感谢你们。 这是代码:
int main (int argc, char *argv[]){ int x; int y; int z; int temp; scanf("%d", &x); scanf("%d", &y); scanf("%d", &z); if (x > y) { temp = x; x = y; y = temp; } if (y > z) { temp = y; y = z; z = temp; } if (x > z) { temp = x; x = z; z = temp; } printf("%d", x); printf("%d", y); printf("%d", z); return EXIT_SUCCESS; }
您从编译器获得的错误就是它所说的。 为了使您的应用程序正确,您必须检查scanf的返回值。 手册页中描述了可能的返回值。
有关导致错误的原因的解释,请参阅gcc手册的“warn_unused_result”部分(引自Peter Rs的回复)。
从海湾合作委员会文件:
如果具有此属性的函数的调用者不使用其返回值,则
warn_unused_result
属性会导致发出警告。 这对于不检查结果是安全问题还是总是错误的函数(例如realloc
)非常有用。int fn () __attribute__ ((warn_unused_result)); int foo () { if (fn () < 0) return -1; fn (); return 0; }
导致第5行发出警告。
以上就是c/c++开发分享Scanf声明相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/522371.html