如果调用返回值为的函数而不将其赋给任何变量,会发生什么情况? #包括 #包括 整数f(整数x){ 返回x; } int main(int argc,char*argv[]){ INTA=4; f(a); printf(“通过!\n”); 返回0; }
当您调用如果调用返回值为的函数而不将其赋给任何变量,会发生什么情况? #包括 #包括 整数f(整数x){ 返回x; } int main(int argc,char*argv[]){ INTA=4; f(a); printf(“通过!\n”); 返回0; },c,function,return-value,C,Function,Return Value,当您调用f(a)而不将其分配给任何对象时会发生什么情况?使用您的示例,我们可以看看它是如何逐行计算的。从主干道开始 #include <stdio.h> #include <stdlib.h> int f(int x) { return x; } int main ( int argc,char * argv[]) { int a=4; f(a); printf("PASSED!\n"); return 0; } 我们现在有一
f(a)
而不将其分配给任何对象时会发生什么情况?使用您的示例,我们可以看看它是如何逐行计算的。从主干道开始
#include <stdio.h>
#include <stdlib.h>
int f(int x) {
return x;
}
int main ( int argc,char * argv[]) {
int a=4;
f(a);
printf("PASSED!\n");
return 0;
}
我们现在有一个值为4的变量a
int a=4;
现在函数f被a调用,它的值为4。在函数f中,第一个参数名为x,它只返回该参数x
那么对
f(a);
只是
f(a);
这样的程序编译和运行都很好
4;
通过您的示例,我们可以了解它是如何逐行计算的。从主干道开始
#include <stdio.h>
#include <stdlib.h>
int f(int x) {
return x;
}
int main ( int argc,char * argv[]) {
int a=4;
f(a);
printf("PASSED!\n");
return 0;
}
我们现在有一个值为4的变量a
int a=4;
现在函数f被a调用,它的值为4。在函数f中,第一个参数名为x,它只返回该参数x
那么对
f(a);
只是
f(a);
这样的程序编译和运行都很好
4;
如果调用返回值为的函数而不将其赋给任何变量,会发生什么情况
函数的返回值不需要使用或赋值。它被忽略(通常是安静地)
该函数仍在执行,其副作用仍在发生
考虑3个函数:
int scanf()
、int f()
和int printf()
,它们的返回值都被忽略,但函数仍在执行
int main(int argv, char *argv[]) {
1 + 1;
return 0;
}
在健壮代码中忽略返回值是不好的,尤其是scanf()
正如所评论的,某些编译器可能会启用警告 显式忽略函数的结果有时用
(void)
表示,以消除该警告
int a=4;
scanf("%d", &a);
f(a);
printf("PASSED!\n");
如果调用返回值为的函数而不将其赋给任何变量,会发生什么情况
函数的返回值不需要使用或赋值。它被忽略(通常是安静地)
该函数仍在执行,其副作用仍在发生
考虑3个函数:
int scanf()
、int f()
和int printf()
,它们的返回值都被忽略,但函数仍在执行
int main(int argv, char *argv[]) {
1 + 1;
return 0;
}
在健壮代码中忽略返回值是不好的,尤其是scanf()
正如所评论的,某些编译器可能会启用警告 显式忽略函数的结果有时用
(void)
表示,以消除该警告
int a=4;
scanf("%d", &a);
f(a);
printf("PASSED!\n");
当你调用f(a)而不给它赋值时会发生什么
-->什么都没有
当你调用一个函数(有返回值)而不给它赋值时会发生什么
-->该函数将被执行,要么像您的案例一样没有意义,要么像修改静态变量或全局变量一样有很多意义。返回值将被忽略
当你调用f(a)而不给它赋值时会发生什么
-->什么都没有
当你调用一个函数(有返回值)而不给它赋值时会发生什么
-->该函数将被执行,要么像您的案例一样没有意义,要么像修改静态变量或全局变量一样有很多意义。返回值将被忽略。返回值通常存储在寄存器中,不会褪色。当编译器需要寄存器时,它将被覆盖 如果函数是内联函数,编译器可能会检测到该值未被使用,并完全忽略正在计算的值。返回值通常会存储在寄存器中,并且不会褪色。
当编译器需要寄存器时,它将被覆盖
如果函数是内联函数,则编译器可能会检测到该值未被使用,并忽略正在计算的值。nothing,返回值将被忽略。这就是你想知道的吗?就像写
10代码>。关于返回值,是的,但是,调用函数的副作用将存在,例如,修改静态变量值代码>导致编译器产生“语句无效”警告。但是写f(4)
不会给出任何警告。为什么会这样?@AndrewHenle:考虑到a=b
是一个表达式,有这样一个要求会很有趣。没有什么,返回值会被忽略。这就是你想知道的吗?就像写10代码>。关于返回值,是的,但是,调用函数的副作用将存在,例如,修改静态变量值代码>导致编译器产生“语句无效”警告。但是写f(4)
不会给出任何警告。为什么?@AndrewHenle:考虑到a=b
是一个表达式,有这样一个要求会很有趣。为什么你在“忽略健壮代码中的返回值,特别是scanf()是不好的”中特别提到scanf()
?您是指stdio.h
库中的实际scanf()
函数,还是指自定义函数,即int scanf()
?提前谢谢!为什么您在“在健壮的代码中忽略返回值是不好的,尤其是scanf()”,特别是scanf()
?您是指stdio.h
库中的实际scanf()
函数,还是指自定义函数,即int scanf()
?提前谢谢!