wake003 发表于 2022-3-29 02:51:19

求大神解释

#include<stdio.h>

int add(int,int);
int sub(int,int);
int calc(int(*)(int,int),int,int);
int (*select(char op))(int,int);

int add(int num1,int num2)
{
return num1+num2;
}
int sub(int num1,int num2)
{
return num1-num2;
}
int calc(int (*fp)(int,int),int num1,int num2)
{
return (*fp)(num1,num2);
}
int (*select(char op))(int,int)
{
   switch(op)
   {
    case'+':return add;
    case'-':return sub;
   }
}
int main()
{
int num1,num2;
char op;
int (*fp)(int,int);

printf("请输入一个式子例如(3+5)");
scanf("%d%c%d",&num1,&op,&num2);
fp=select(op);
printf( "%d%c%d=%d\n",num1,op,num2,calc(fp,num1,num2));



return 0;
}

   

warning C4715: 'select' : not all control paths return a value
Linking...

程序能正常运行,但是出来了这个是什么情况?

wp231957 发表于 2022-3-29 07:11:39

int (*select(char op))(int,int)这个函数不是所有分支都有返回

傻眼貓咪 发表于 2022-3-29 08:15:08

int (*select(char op))(int, int)
{
   switch(op)
   {
    case'+': return add;
    case'-': return sub;
    }
    return'' // <---------------
}

贾政景 发表于 2022-4-4 17:09:55

你的break呢?
页: [1]
查看完整版本: 求大神解释