如何解决此警告?

时间:2020-10-17 11:48:25

标签: c

当我使用gcc -Wall进行编译时,它向我显示此警告:

警告:控制权到达非空函数[-Wreturn-type]

的末尾
#include <stdio.h>

int concatenate(int y, int a)
{
  if (a<y)
  {
    a = a * 10;
    concatenate(y,a);
  }
  else 
    return a;
}

int main(void)
{
  int x;
  int y;
  int a = 10;
  scanf("%d%d", &x, &y);
  int z = concatenate(y,a);
  int result = x*z + y;
  
  printf("%d\n", result);
  
  return 0;
}

2 个答案:

答案 0 :(得分:1)

在此if语句中

   if (a<y)
   {
    a= a * 10;
    concatenate(y,a);
   }

该函数不返回任何内容。也许你意思是

   if (a<y)
   {
    a= a * 10;
    return concatenate(y,a);
   }

答案 1 :(得分:0)

return为true时,concatenate函数中不会执行任何a<y语句。

即使return可以解决警告,也要执行a<y语句。

我的猜测是你想要的

    return concatenate(y,a);

代替

    concatenate(y,a);