Możliwe Duplikat:
Parameter evaluation order before a function calling in CZła wyjściowy podczas pracy kod C
W poniższym kodzie że oczekuje się, że wyjściowa wynosi 20 i 76, lecz zamiast 75 i 21 nadchodzi jako wyjście. Proszę wyjaśnić, dlaczego tak jest.
#include<stdio.h>
unsigned func(unsigned n)
{
unsigned int a =1 ;
static unsigned int b=2;
a+=b; b+=a;
{
unsigned int a=3;
a+=b; b+=a;
}
//printf("%d %d ",a,b);
return (n+a+b);
}
int main()
{
printf("%d %d\n",func(4),func(5));
return 0;
}
nie potwierdziły, ale ja podejrzewam to: http://stackoverflow.com/questions/376278/parameter-evaluation-order-before-a-function-calling-in-c – Mysticial