萨西摩尔·槿花 发表于 2022-9-21 18:00:46

关于返回值报错

a.c:8:2: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d",&l,&m);
^~~~~~~~~~~~~~~~~~~~
a.c:12:3: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d",&a,&a);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
这是什么意思?怎么解决?

jhq999 发表于 2022-9-21 18:06:39

加个int ret=scanf("%d %d",&l,&m);就不会有警告了
但没有必要,很多警告可以忽视

嘉岳呀 发表于 2022-9-25 15:10:52

有源代码吗

zhangjinxuan 发表于 2022-10-2 07:49:13


a.c:8:2: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d",&l,&m);
^~~~~~~~~~~~~~~~~~~~
a.c:12:3: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d",&a,&a);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

翻译:

a.c:8:2: 警告:忽略'scanf'的返回值, 用属性 未使用的返回值 声明[警告 未使用的返回值]

这种警告一般可以忽略,不是报错一般就没事

小甲鱼老师讲过,编译结果一般有两种反馈结果
1.报错,是指语法错误等无法编译的代码
2.警告,是指代码可能有问题(我说的是可能,可能是某些无意义的代码,如声明了number却没有使用等)

如果真的不想看见警告,那么请关闭该选项开关,否则你只能这样写代码了:
#include <stdio.h>

int main() {
    int _printf_return_value, _scanf_return_value, n;
    _scanf_return_value = scanf("%d", &n);
    _printf_return_value = printf("%d\n", n);
    return 0;
}
页: [1]
查看完整版本: 关于返回值报错