Я играю со стеком и параметрами вызова функции. Здесь я хочу получить значение переменных параметров напрямую, используя стек.
Он работает (или кажется, работает) нормально, когда я не использую параметры переменных. Вот что работает:
void test(int a, int b)
{
unsigned char *ptr;
int i;
ptr = (unsigned char*)&a;
for (i = 0; i < 4; i++)
{
printf("%d,", *ptr);
}
}
Это работает, я могу получить значение b; Тот же код, использующий
void test(int a, ...);
в качестве прототипа функции, не работает.
Я не могу понять, что здесь происходит.
Вы можете мне помочь? Спасибо!
Изменить: Хорошо, тогда кажется, что не существует стабильного и надежного способа делать такие вещи самостоятельно. Допустим, в вызываемой функции я знаю размер данных (но не тип) аргумента переменной, есть ли способ получить их?