使用if语句可以检查整数函数的返回。 该函数在此内执行。
if(!yourfunction)
{
do something;
}
else
{
do something else;
}
然而,开关中的相同内容甚至不会执行该功能。为什么呢?
switch(yourfunction())
{
case 1:
do something;
case 0:
something else;
}
答案 0 :(得分:0)
可以这样做 - 但是你的函数应该返回一个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] $