当我尝试编译它时,它说“testrand.c :(。text + 0x11):未定义引用`rand_number'”
1 #include <stdio.h>
2 #include <time.h>
3
4 int rand_number(int param);
5
6 main()
7 {
8 while(5)
9 {
10 printf("%d", rand_number(15));
11 sleep(1);
12 }
13
14
15 int rand_number(int param)
16 {
17 srand((unsigned int)time(NULL));
18 int x = param;
19 int rn = rand() % x;
20 return rn;
21 }
22 }
但是,我已经在那里明确定义了......
我已尝试在引号中包含time.h,包括stdlib.h等...但仍然不知道发生了什么。有谁知道发生了什么?
答案 0 :(得分:3)
这是因为您的rand_number
函数是在其他函数main
中定义的。
这可以解决您的问题:
#include <stdio.h>
#include <time.h>
int rand_number(int param);
main()
{
while(5)
{
printf("%d", rand_number(15));
sleep(1);
}
}
int rand_number(int param)
{
srand((unsigned int)time(NULL));
int x = param;
int rn = rand() % x;
return rn;
}
答案 1 :(得分:1)
您已在rand_number
内定义了main
,但不允许这样做。
在第13行放置}
以关闭main()。并从第22行删除}