कोड का यह टुकड़ा क्यों संकलित करता है?सशर्त शाखाएं
#include <iostream>
int foo(int x)
{
if(x == 10)
return x*10;
}
int main()
{
int a;
std::cin>>a;
std::cout<<foo(a)<<'\n';
}
संकलक मेरे जैसे "नहीं सभी कोड पथ एक मान देता है" एक त्रुटि नहीं देना चाहिए? क्या होता है/मेरा कार्य वापस करता है जब x दस के बराबर नहीं होता है?
कड़ाई से संबंधित नहीं है, लेकिन आपकी रुचि बढ़ा सकता है: http://stackoverflow.com/questions/9653722/how-does-returning-values-from-a-function-work – Corbin
बीटीडब्लू: यह किस कंपाइलर है (ताकि मैं भविष्य में इससे बच सकता हूं)? –
@ निकोलबोलस: कंपाइलर से बचें, चेतावनी-झंडे के बिना संकलन से बचें! – bitmask