#define RAND_MAX 10
#include<stdio.h>
int main()
{
double x;
x=randRange(-1.0,1.0);
printf("x value is %f::",x);
return 0;
}
double randRange(double min, double max)
{
return rand() * (max - min) / RAND_MAX + min;
}
Run Code Online (Sandbox Code Playgroud)
错误::下面的代码段是生成的错误 -
$gcc main.c -o demo -lm -pthread -lgmp -lreadline 2>&1
main.c:11:8: error: conflicting types for 'randRange'
double randRange(double min, double max) {
^
main.c:6:5: note: previous implicit declaration of 'randRange' was here
x=randRange(-1.0,1.0);
^
Run Code Online (Sandbox Code Playgroud)
冲突类型出错?我检查了返回类型.
您需要在函数调用点之上声明函数.
double randRange(double min, double max);
int main()
{
double x;
x=randRange(-1.0,1.0);
...
double randRange(double min, double max)
{
Run Code Online (Sandbox Code Playgroud)
如果不这样做,ansi C会为您返回一个函数隐式声明 int