[Comm] [JT] C function parameters order

Alexey V. Novikov =?iso-8859-1?q?shader_=CE=C1_yandex=2Eru?=
Чт Авг 18 12:57:48 MSD 2005


18.08.2005 12:36, Vitaly Ostanin пишет:
> Здравствуйте.
> 
> Тут прислали прикол:
> #include <stdio.h>
> void test(int a, int b, int c, int d)
> {
> printf("a=%d, b=%d, c=%d, d=%d\n", a ,b, c, d);
> }
> void main(void)
> {
> int c = 1;
> test(++c, ++c, ++c, ++c);
> test(c++, c++, c++, c++);
> printf("\nc=%d\n", c);
> }
> 
> gcc-3.4.4 и борландовский turbo C 2.0.1 говорят:
> a=5, b=4, c=3, d=2
> a=8, b=7, c=6, d=5
> 
> c=9
> 
> А MS visual C 6.0 говорит:
> a=5, b=4, c=3, d=2
> a=5, b=5, c=5, d=5
> 
> c=9
> 
> Кто из них не прав?

А если вот так (MinGW GCC 3.3.1 (mingw special 20030804-1))
gcc -o main.exe -O3 main.c, то имеем:

a=2, b=3, c=4, d=5
a=5, b=6, c=7, d=8

c=9

:)

-- 
WBR, Alexey V. Novikov



Подробная информация о списке рассылки community