Функция, передающая аргументы в обратном порядке

Вот моя функция:

void abc(char  *def, unsigned int w, unsigned int x, unsigned int y, unsigned int z)
{
   printf("val 1 : %d\n", w);
   printf("val 2 : %d\n", x);
   printf("val 3 : %d\n", y);
   printf("val 4 : %d\n", z);
}

, и здесь я вызываю эту функцию:

unsigned int exp[4] = { 1, 2, 3, 4 };
unsigned short count = 0;
abc(anyarray, exp[count++], exp[count++], exp[count++], exp[count++]);

, и вот результат, который я ожидал:

val1 : 1
val2 : 2
val3 : 3
val4 : 4

, но то, что я получаю, полностью противоположно этому:

val1 : 4
val2 : 3
val3 : 2
val4 : 1

Не знаю почему? Любая помощь будет принята с благодарностью.

7
задан Jonathan Leffler 2 October 2010 в 06:40
поделиться