#include<stdio.h>
int sel=5,out=10;
int findout(){
if(sel==5)
return out*=2;
}
int main(){
int ret1,ret2=-1;
ret1=findout();
printf("before %d %d %d",sel,out,ret1);
sel=8;out=7;
ret2=findout();
printf("\nafter %d %d %d",sel,out,ret2);
}
Ausgang:Was ist der Rückgabewert einer Funktion ohne Rückgabeanweisung?
vor 5 20 20
nach 8 7 8
EDIT: Mein Compiler keine warnings.Here nicht zeigen Sie es sehen können. Sein auf GNU GCC Compiler Codeblocks auf Ubuntu OS
g++ -c /home/himani/Untitled1.cpp -o /home/himani/Untitled1.o
g++ -o /home/himani/Untitled1 /home/himani/Untitled1.o
Process terminated with status 0 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
Hier im zweiten Fall, wenn ich keinen Wert zurückkehren (für sel=8
und out =7
), wie der Wert von ret2
kommen ist 8
?
Achten Sie auf Ihre Compiler-Warnungen. –
Was ** erwarten ** Sie den Wert von "kein Wert" zu sein? –
Vermeiden Sie auch globale Variablen: * im Allgemeinen * sie mehr Schaden (Code schwer zu folgen, unerwartete Änderungen, ...) als gut. – pmg