2011-08-11 36 views
5

nếu tôi có chức năng sử dụng hàm rand() làm giá trị khởi tạo, giá trị đó có được tìm thấy khi chương trình biên dịch hay khi chức năng được chạy không?Giá trị khởi tạo có được tính tại thời gian biên dịch hay thời gian chạy không?

nói:

int function(int init = rand()){ 
    return init; 
} 

nếu nó được tìm thấy tại thời gian biên dịch, làm thế nào tôi có thể nhận được khởi tạo là năng động? tôi đoán tôi sẽ sử dụng NULL làm giá trị khởi tạo, nhưng làm thế nào tôi có thể biết sự khác biệt giữa NULLinit = 0?

Trả lời

6

Giá trị được tính trong thời gian chạy.

Bạn luôn có thể tạo ra một chương trình nhỏ và kiểm tra thực hành:

int main() { 
    srand(time(NULL)); 
    std::cout << function() << std::endl; 
} 
Các vấn đề liên quan