C语言中的静态函数是怎么调用的(例如 下面stack.cpp 最后里面的Stackincrease_H函数)

图片描述

h 文件声明如下

//

//

#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中访问它!

以上是 C语言中的静态函数是怎么调用的(例如 下面stack.cpp 最后里面的Stackincrease_H函数) 的全部内容, 来源链接: utcz.com/p/195057.html

回到顶部