Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   why this code shows diffferent results (http://www.go4expert.com/forums/code-diffferent-results-t15420/)

arun12138 6Dec2008 11:32

why this code shows diffferent results
 
Code:

main( )
{
float a = 15.5 ;
char ch = 'C' ;
printf ( "\n%f %c", a, ch ) ;
printit ( a, ch ) ;
getch();
 }
printit ( float sa, char sch )
{
 printf ( "\n%f %c", sa, sch ) ;
}

this shows 15.5 C in main printf() and 0.00 in printit() why?

xpi0t0s 6Dec2008 14:20

Re: why this code shows diffferent results
 
What compiler are you using?
Does it work correctly if you redefine printit to void instead of default-int and place it above main (or prototype it)?

Tried it in Visual Studio 2005 and it wouldn't compile because of the above; I set the return of printit to void and moved it above main and it worked fine.

So I'd guess this is either a compiler bug or a consequence of some of the default behaviour you're relying on here (mainly that when the compiler finds printit in use it assumes its prototype is "int printit()" ).


All times are GMT +5.5. The time now is 08:48.