使用if语句可以检查整数函数的返回。
该函数在其中执行。
if(!yourfunction)
{
do something;
}
else
{
do something else;
}
但是,switch中的同一件事甚至不会执行该功能。为什么?
switch(yourfunction())
{
case 1:
do something;
case 0:
something else;
}
最佳答案
可以做到-但是您的函数应该返回一个int。
int foo(void) { return 1; }
int main(void)
{
switch(foo()) {
case 0:
printf("foo\n");
break;
case 1:
printf("bar\n");
break;
default:
break;
}
return 0;
}
如图所示,它可以编译并运行。
[09:36 PM] $ gcc -Wall -Werror switcht.c -o switcht
[09:36 PM] $ ./switcht
bar
[09:36 PM] $
但是,如果您的函数返回了除int以外的任何内容,则它将无法编译。例如,如果
foo()
返回float
:float foo(void) { return 1.0; }
然后:
[09:44 PM] $ gcc -Wall -Werror switcht.c
switcht.c: In function ‘main’:
switcht.c:7:9: error: switch quantity not an integer
switch(foo()) {
^~~~~~
[09:44 PM] $