两个双打如何成为冲突类型?

use*_*764 0 c

#include<stdio.h>
#include<math.h>


int main(void){
  double a=0,r=0,n=0;
  printf("Enter Constant a:");
  scanf("%lf",&a);
  printf("Enter Constant r:");
  scanf("%lf",&r);
  printf("Enter Variable n:");
  scanf("%lf",&n);

  double an;
  an = geom_rec(a,r,n);    // Line 15

  return 0;
}

double geom_rec(double a,double r,double n){    // Line 20
  double ans=a;
  return a;
}
Run Code Online (Sandbox Code Playgroud)

错误:

Line 20: error: conflicting types for 'geom_rec'
Line 15: error: previous implicit declaration of 'geom_rec' was here
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 12

你忘了为这个函数创建一个原型.

在您的main函数之前放置以下内容(您也可以移动上面的整个函数main):

double geom_rec(double a,double r,double n);
Run Code Online (Sandbox Code Playgroud)

如果您调用之前未定义或原型化的函数,编译器会假定它返回int- 这与您的实际返回类型冲突.

  • +1值得声明默认的`int`返回类型. (5认同)