1

当我尝试编译它时,它显示“testrand.c:(.text+0x11): undefined reference to `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 等……但仍然不知道发生了什么。有谁知道发生了什么?

4

2 回答 2

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;
}
于 2012-05-04T10:32:42.313 回答
1

您已经rand_numbermain其中定义了不允许的函数。

通过在第 13 行放置 a 来关闭 main() }。并}从第 22 行删除

于 2012-05-04T10:32:32.513 回答