2011-08-11 15 views
5

यदि मेरे पास कोई ऐसा कार्य है जो rand() फ़ंक्शन को प्रारंभिक मान के रूप में उपयोग करता है, तो यह मान तब मिलेगा जब प्रोग्राम संकलित होता है, या जब फ़ंक्शन चलाया जाता है?क्या प्रारंभिक मान संकलन समय या रनटाइम पर गणना की जाएगी?

कहते हैं:

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

अगर यह संकलन समय पर पाया जाता है, मैं कैसे प्रारंभ गतिशील होने के लिए मिल सकता है? मुझे लगता है कि मैं शुरुआती मूल्य के रूप में NULL का उपयोग करूंगा, लेकिन मैं NULL और init = 0 के बीच अंतर कैसे बताऊंगा?

उत्तर

6

मूल्य रनटाइम में गणना की जाती है।

तुम हमेशा एक छोटे से कार्यक्रम बना सकते हैं और जाँच करें कि अभ्यास पर कर सकते हैं:

int main() { 
    srand(time(NULL)); 
    std::cout << function() << std::endl; 
}