1

これをコンパイルしようとすると、「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 }

しかし、私はそれを明確に定義しました...

stdlib.hなどを含む引用符でtime.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_number内部mainで許可されていない関数を定義しました。

13行目にaを配置して、main()を閉じます}。また、}22行目からfromを削除します。

于 2012-05-04T10:32:32.513 に答える