Я пытаюсь создать стек на C для развлечения, и у меня возникла идея использовать структуру для представления стека. Затем я добавляю указатели на функции в структуру для операций push () и pop ().
Пока все, кажется, хорошо, но для реализации функций push () и pop () мне нужно как-то сослаться на * this. Как это (можно?) Сделать?
Это моя структура
struct Stack {
int *data;
int current_size;
int max_size;
int (*push)(int);
int (*pop)();
};
И здесь в качестве примера ' s push
int push(int val) {
if(current_size == max_size -1)
return 0;
data[current_size] = val;
current_size++;
return 1;
}
Как вы понимаете, компилятор не знает, что такое current_size
, поскольку он ожидает чего-то вроде stack-> current_size
.
Можно ли как-то это преодолеть?