c语言中的Return语句
在这段代码中,当我编写不带“bonues”变量的返回语句时,答案是3750。当写它时,它给出4750c语言中的Return语句,c,return,return-value,C,Return,Return Value,在这段代码中,当我编写不带“bonues”变量的返回语句时,答案是3750。当写它时,它给出4750 那么,为什么在没有写入bonues变量的情况下就不能执行if语句呢 #include <stdio.h> #include <stdlib.h> int calcbouns(int yearworks); int main() { int employee_one =calcbouns (15); printf("%d",empl
那么,为什么在没有写入
bonues
变量的情况下就不能执行if语句呢
#include <stdio.h>
#include <stdlib.h>
int calcbouns(int yearworks);
int main()
{
int employee_one =calcbouns (15);
printf("%d",employee_one);
return 0 ;
}
int calcbouns(int yearworks)
{
int bonues = yearworks*250;
if (yearworks>10)
{
bonues +=1000;
}
return bonues ;
}
#包括
#包括
int calcbouns(int yearworks);
int main()
{
国际雇员人数=calcbouns(15);
printf(“%d”,一名员工);
返回0;
}
int calcbouns(int yearworks)
{
int bonues=年工作*250;
如果(年工>10)
{
骨+=1000;
}
还骨;
}
calcbouns
是一个指定为返回整数的函数。当你写时,返回bonues
,函数的返回值指定为奖金的值
当你写返回时代码>您违反了语言约束。“空”返回语句不能出现在非void函数中。否则将导致程序具有未定义的行为。未定义行为的一个方面是奇怪的返回值
结论?不要违反语言约束,并在编译时启用所有警告(甚至可能将其视为错误),以便编译器可以更好地保护您免受约束违反的影响。calcbouns
是指定为返回整数的函数。当你写时,返回bonues
,函数的返回值指定为奖金的值
当你写返回时代码>您违反了语言约束。“空”返回语句不能出现在非void函数中。否则将导致程序具有未定义的行为。未定义行为的一个方面是奇怪的返回值
结论?不要违反语言约束,并在编译时启用所有警告(甚至可能将它们视为错误),这样您的编译器就可以更好地保护您免受违反约束的影响。所以您说:“如果我写返回bonues;
它返回4750,如果我只写返回;
它返回3750?”
你应该总是说出你想返回的内容。如果你打开了警告,你可能会收到警告
但是,如果您在英特尔x86平台上,函数的返回值会被放入eax
寄存器中。因此,您会返回eax
寄存器中当前的值,在添加任何内容之前,该值就是bonues
的值。您说:如果我写返回bonues
返回4750,如果我只写返回代码>它返回3750
你应该总是说你想回报的话。如果打开了警告,则可能会收到警告
但是,如果您使用的是Intel x86平台,则函数的返回值会被放入eax
寄存器中。因此,您返回当前在eax
寄存器中的内容,在添加任何内容之前,该内容就是bonues
的值。“为什么在不写入“bonues”变量的情况下无法执行if语句”这不是正在发生的事情。如果返回时没有返回值,那么您就是在调用未定义的行为。此外,当编译器向您发出警告时,您应该认真倾听它。“为什么在不编写“bonues”变量的情况下无法执行if语句”这不是正在发生的事。如果返回时没有返回值,那么您调用的是未定义的行为。此外,当编译器向您发出警告时,您应该认真倾听。