错误:应为delcaration说明符或'';在'之前;时间';[丙]
我有一个简单的函数,它给了我这个错误: 错误:“时间”之前应为delcaration说明符或“…” 以下是文件中的代码:错误:应为delcaration说明符或'';在'之前;时间';[丙],c,ubuntu,gcc,time,C,Ubuntu,Gcc,Time,我有一个简单的函数,它给了我这个错误: 错误:“时间”之前应为delcaration说明符或“…” 以下是文件中的代码: #include <stdlib.h> #include <time.h> srand(time(NULL)); float random_number(float min, float max) { float difference = (max - min); return (((float)(difference + 1)/R
#include <stdlib.h>
#include <time.h>
srand(time(NULL));
float random_number(float min, float max) {
float difference = (max - min);
return (((float)(difference + 1)/RAND_MAX) * rand() + min);
}
#包括
#包括
srand(时间(空));
浮动随机数(浮动最小值、浮动最大值){
浮动差=(最大-最小);
返回(((浮动)(差值+1)/RAND_MAX)*RAND()+min);
}
我不明白为什么我会犯这个错误。我在Ubuntu 12.04中使用gcc进行编译。在C语言中,运行时执行的所有代码都必须在函数中。将对
srand()
的调用放在一个init函数内。您不能在主函数作用域外调用函数,而且,在函数random\u number中使用random之前播种random也没有意义
您需要移动srand(time(NULL))代码>到主功能,如:
float random_number(float min, float max) {
float difference = (max - min);
return (((float)(difference + 1)/RAND_MAX) * rand() + min);
}
int main()
{
srand(time(NULL));
// your code which calls random_number here
}
另一种方法是,不要更改main,但:
static int isRandomInited = 0;
float random_number(float min, float max) {
if (!isRandomInited) { // init random only 1 time
srand(time(NULL));
isRandomInited = 1;
}
float difference = (max - min);
return (((float)(difference + 1)/RAND_MAX) * rand() + min);
}
文件作用域中不能有非声明语句。是。我通过移动sr和低于差来修复它。谢谢,很简单