我是 C 编程新手,我需要一个 C 头文件,它管理两个堆栈。应该只有两种方法:push 和 pop(但它们不引用同一个堆栈)。
push 会将数据推送到第一个堆栈,然后由标题功能在内部弹出和处理,并且输出被推送(无论何时)到第二个堆栈
如果有任何堆栈,pop 将从第二个堆栈中获取输出数据
问题是,如果头文件中可能没有初始化任何变量,我不知道如何使第二个堆栈可用于 pop 方法。在 .c 文件中初始化堆栈似乎是错误的。
头文件只能包含push
和pop
函数的原型。然后在定义and函数的源文件中声明、定义和初始化所有数据(变量等)。push
pop
您根本不需要在头文件中公开堆栈。只需在您的 C 实现文件中完全实现它们;标头可以很简单:
void push(int value);
int pop();
int empty(); // returns 0 if pop() is valid to call now
void process(); // do some work, moves things from the input stack to the output
在实现文件中,只需将堆栈指针默认初始化为 NULL,并在用户第一次调用 push() 时设置堆栈。