C语言中static 函数
来源:互联网 发布:oracle数据库收费吗 编辑:程序博客网 时间:2024/05/24 04:25
在C里面,所谓 static ,只是限制在当前源文件————这个只是对于编译器/链接器而言。
但实际上,运行时,static和普通的extern 的函数/变量,没有区别。
例如:使用函数指针/变量指针,完全可以访问其他文件的 static 变量/函数
file01.h
int * iptr01;
typedef void (* funcPtr)(void);
funcPtr pfun01;
----------------------------
file01.c
#include "file01.h"
static int ivar01 = 36;
int * iptr01 = &ivar01;
static void hwfun (void);
funcPtr pfun01 = &hwfun;
void hwfun (void)
{
printf("hello world\n");
}
-------------------------
file02.c
#include "file01.h"
............
//在某个代码内
*iptr01 = 72;
//file01.c 中的ivar01 变为72;
pfun01();
//调用了file01.c 中的hwfun ,打印出hello world
函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。
定义静态函数的好处:
<1> 其他文件中可以定义相同名字的函数,不会发生冲突
<2> 静态函数不能被其他文件所用。 存储说明符auto,register,extern,static,对应两种存储期:自动存储期和静态存储期。 auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块时被建立,它在该程序块活动时存在,退出该程序块时撤销。
- C语言中static 函数
- C语言中 static修饰函数
- c语言中static 变量和函数
- c语言中static
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别?
- C语言中的 static变量、static函数
- C语言中的 static变量、static函数
- C语言中的 static变量、static函数
- C语言中的 static变量、static函数
- c语言static变量和static函数
- C语言--static修饰函数
- C语言中的static函数
- Linux系统编程学习之《Linux中常见的头文件》
- UITapGestureRecognizer的用法
- iPhone之UITextField缩进文本
- 商品和商家行业分类
- MySQL 错误代码一览
- C语言中static 函数
- Md5加密算法java实现
- android 文件夹浏览器编码实现
- 麻省理工学院公开课:信号与系统:模拟与数字信号处理> 离散时间 傅里叶转换
- (Jquery功能篇)jquery的smallsluder控件(图片轮换)
- Run-Time Check Failure #3
- 动态创建对象,并渲染贴图,动态添加删除脚本
- 水1276
- tomcat中的用户名密码配置以及roles的含义