我正在尝试为了好玩而在C语言中创建一个栈,并想到使用结构体来表示栈。然后我向结构体添加了函数指针以进行push()和pop()操作。
目前似乎一切都很好,但是为了实现push()和pop()函数,我需要以某种方式引用*this。那么如何做到这一点呢?这是我的结构体:
目前似乎一切都很好,但是为了实现push()和pop()函数,我需要以某种方式引用*this。那么如何做到这一点呢?这是我的结构体:
struct Stack {
int *data;
int current_size;
int max_size;
int (*push)(int);
int (*pop)();
};
这里有一个示例,展示如何进行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
这样的东西。
有没有办法解决这个问题呢?
stack->push(10);
。如果在这里没有得到答案,我可以相当自信地说它确实是不可能的。 - foo