我是C编程新手,我需要一个C头文件,它管理两个堆栈。应该只有两种方法:push和pop(但它们不引用相同的堆栈)。
push会将数据推送到第一个堆栈,然后通过标头功能在内部弹出和处理,并将输出(无论何时)推送到第二个堆栈
pop会从第二个堆栈中获取输出数据
问题是,如果在头文件中没有初始化的任何变量,我不知道如何使第二个堆栈可用于pop方法。初始化.c文件中的堆栈似乎是错误的。
答案 0 :(得分:3)
头文件只能包含push
和pop
函数的原型。然后在源文件中声明,定义和初始化所有数据(变量等),其中定义了push
和pop
函数。
答案 1 :(得分: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()时设置堆栈。