2013-03-17 47 views
14

Bất cứ khi nào tôi cố gắng sử dụng chức năng srand tôi nhận được cảnh báo này khai báo ngầm định hàm 'thời gian' [-Khai báo hàm-chức năng] |

"implicit declaration of function 'time' [-Wimplicit-function-declaration]|" 

và một lỗi báo cáo cửa sổ xuất hiện khi chạy các tập tin biên soạn,
Tôi là một người mới đến lập trình c, Tôi tìm thấy điều này trên một cuốn sách văn bản, nhưng nó không làm việc cho tôi.

srand (time()); 
    int x= (rand()%10) +1; 
    int y= (rand()%10) +1; 
    printf("\nx=%d,y=%d", x,y); 

Tôi cần điều gì để sửa lỗi này?

Trả lời

24

Bạn cần phải chắc chắn rằng bạn #include tiêu đề đúng, trong trường hợp này:

#include <stdlib.h> // rand(), srand() 
#include <time.h> // time() 

Khi nghi ngờ, kiểm tra các trang người đàn ông:

$ man rand

$ man time

Một vấn đề nữa: time() yêu cầu một đối số, có thể là NULL, nên cuộc gọi của bạn để srand() nên là:

srand(time(NULL)); 
+0

cảm ơn trả lời .. i hv bao gồm stdlib.h, nhưng sau khi bao gồm time.h nó mang lại cho tôi một lỗi khác lỗi: quá ít đối số để chức năng 'thời gian' –

+0

mã i bao gồm hoạt động tốt trên trình biên dịch trực tuyến như mã pad .. im sử dụng codeblocks ide trên máy tính của tôi –

+1

Trả lời ngay bây giờ được cập nhật để bao gồm các đối số còn thiếu cho thời gian(). –

1

Lưu ý rằng time() chức năng sử dụng thời gian hiện tại (tính bằng giây kể từ năm 1970) cả về giá trị trả về của nó và trong lập luận địa chỉ của nó.

Các vấn đề liên quan