0

我是 C 编程新手,我需要一个 C 头文件,它管理两个堆栈。应该只有两种方法:push 和 pop(但它们不引用同一个堆栈)。

  • push 会将数据推送到第一个堆栈,然后由标题功能在内部弹出和处理,并且输出被推送(无论何时)到第二个堆栈

  • 如果有任何堆栈,pop 将从第二个堆栈中获取输出数据

问题是,如果头文件中可能没有初始化任何变量,我不知道如何使第二个堆栈可用于 pop 方法。在 .c 文件中初始化堆栈似乎是错误的。

4

2 回答 2

3

头文件只能包含pushpop函数的原型。然后在定义and函数的源文件中声明、定义和初始化所有数据(变量等)。pushpop

于 2013-10-07T11:51:15.327 回答
2

您根本不需要在头文件中公开堆栈。只需在您的 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() 时设置堆栈。

于 2013-10-07T11:51:38.983 回答