#ifndef _STACK_H
#define _STACK_H
//
// 定义栈的通用类型 数据结构
// 使用线性表的存储结构思想,在数据模型中记录存储容量,和数据实际存储容量
#define STACKSTORAGE 100 //栈的存储容量
#define TIMES 2 //栈的扩充容量
typedef struct {
void *elems; //栈模型的堆区存储结构数据地址
int stack_h; //数据栈的存储容量
int virStack_h; //数据栈的实际存储容量
int elemSize; //单位数据类型所占的空间
}Stack;
// 初始化栈数据模型
// 销毁栈数据模型
void initialStack(Stack *S,int elemSize);
void disposeStack(Stack *S);
// 入栈操作函数
// 出栈操作函数
void StackPush(Stack *S,void *elem_addr_ptr);
void StackPop(Stack *S,void *elem_addr_ptr);
// 判断栈数据模型是否为空
int Stack_not_empty(Stack *S);
// 增加数据栈模型容量
static void Stackincrease_H(Stack *S);
#endif
//
因为用static修饰了Stackincrease_H,所以它的linkage是internal,所以只能在它所在的编译单元中能访问到,也就是只能在STACK_Structure.cpp中访问它!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。