Value, value, who's got the value?
Steve Simmons
scs at vax3.iti.org
Thu Apr 27 14:48:55 AEST 1989
Consider the following program:
int func1()
{
int b ;
b = 2 ;
}
int func2()
{
int c = 3 ;
c ;
}
main()
{
int a = 1 ;
printf( "Value of a is %d\n", a ) ;
a = func1() ;
printf( "Value of a is %d\n", a ) ;
a = func2() ;
printf( "Value of a is %d\n", a ) ;
}
Compile and run this on a UNIX-PC (system V) under standard cc or
with gcc, and the result is:
Value of a is 1
Value of a is 2
Value of a is 3
On BSD43. with standard cc or gcc, the result is
Value of a is 1
Value of a is 0
Value of a is 0
Several questions: why does the OS make a difference; why does
System V get it 'right' (even tho the code is wrong); why do
none of these flag func2 as having a syntax error?
Steve Simmons Just another midwestern boy
scs at vax3.iti.org -- or -- ...!sharkey!itivax!scs
"Hey...you *can* get here from here!"
More information about the Comp.lang.c
mailing list