Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果调用返回值为的函数而不将其赋给任何变量,会发生什么情况? #包括 #包括 整数f(整数x){ 返回x; } int main(int argc,char*argv[]){ INTA=4; f(a); printf(“通过!\n”); 返回0; }_C_Function_Return Value - Fatal编程技术网

如果调用返回值为的函数而不将其赋给任何变量,会发生什么情况? #包括 #包括 整数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()
?提前谢谢!