जैसी उम्मीद थी, संकलक (VisualStudio 2008) एक चेतावनीसमारोह
चेतावनी C4715 दे देंगे नहीं सभी नियंत्रण पथ मान
जब निम्नलिखित कोड संकलन:
int doSomethingWith(int value)
{
int returnValue = 3;
bool condition = false;
if(condition)
// returnValue += value; // DOH
return returnValue;
}
int main(int argc, char* argv[])
{
int foo = 10;
int result = doSomethingWith(foo);
return 0;
}
लेकिन कार्यक्रम ठीक चलाता है। फ़ंक्शन doSomethingWith() का वापसी मान 0.
केवल अपरिभाषित व्यवहार है, या कोई निश्चित नियम है कि रनटाइम पर परिणाम मान कैसे बनाया/गणना की जाती है। गैर-पीओडी डेटाटाइप के साथ वापसी मूल्य के रूप में क्या होता है?
इस उत्तर को देखें: http://stackoverflow.com/questions/1610030/why-can-you-return-from-a-non-void-function-without-returning-a-value- बिना समर्थक/1610454 # 1610454 –
@fnieto: आह, मैं देखता हूं, यह एक बहुत अच्छा जवाब है। हालांकि यह खुद को नहीं मिला, पूछने से पहले ... – nabulke