"私人" C头文件中的变量

时间:2013-10-07 11:46:06

标签: c variables header

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

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

  • 如果有任何

  • pop会从第二个堆栈中获取输出数据

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

2 个答案:

答案 0 :(得分:3)

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

答案 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()时设置堆栈。