What is the return value if we dont return anything from a non void return typed function in c++?[Experimental] -


i have observed if don’t return value empty function int return type 1. in below case showing 4 3 2 o/p(is value of static variable si getting printed here? if print si o/p 2 3 4, in reverse of now. there function's stack push , pop here in case?). observed if use float return type prints nan nan nan o/p. behavior compiler dependant (i have tried both gcc , devcpp, observed same)? going on here? please share thoughts on this.

#include<iostream> using namespace std;   int f(int i){      static int si = i;      si = si + i;      ///return si; }  int main(){     cout<<f(1)<<" "<<f(1)<<" "<<f(1);     //cout<<" "<<f(1);    //if uncomment line o/p is: 4 3 2 5, looks it's printing value of si. } 

it looks behavior of cout causing reverse printing of static variable si's value?

it undefined behaviour. have return non-void function*

from § 6.6.3 return statement [stmt.return]

flowing off end of function equivalent return no value; results in undefined behavior in value-returning function.

* main() function has implicit return 0 not necessary explicitly return. special case.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -