-
Static和extern关键字 c
- 对函数的作用; 函数有分类型;外部函数:和内部函数;
- 外部函数:可以被本文件和其他文件访问;
- 内部函数:只能被本文件访问;其他文件不能访问;
- 默认情况下,所有函数都是外部函数;
- extern是外部的意思;
- 完整的定义外部函数需要加上extern,因为默认情况下就是外部函数,可以省略extern;
- 完整的声明一个外部函数:extern void test();完整的定义外部函数也是在函数名类型前加上extern;
- extern的作用定义外部函数;声明外部函数;
- 定义一个内部函数;在函数类型前加上static;
- 如static void test(){printf(“1234");}
- 内部函数不能直接调用,但是可以间接调用;
- static void test2();需要先声明内部函数;
- void test(){test2();printf(“12312");}
- static test2(){printf(2323“");}
- 通过上面代码别人就可以间接调用test2();
- 整个项目中不允许有同名的外部函数;
- .
- 上面介绍的extern和static对函数的作用;下面是介绍对变量的作用
- 全局变量分两种:内部变量和外部变量;
- 内部变量只能被本文件访问,不能被其他文件访问;
- 外部变量:定义的变量能被本文件和其他文件访问;
- 默认情况下;所有的全局变量都是外部变量;如果大家都有相同的变量,证明他们占用的存储地址是相同的;
- 默认情况下,全局变量都是0;不同文件中的同名外部变量,都代表着同一个变量;
- static int b;定义内部变量;
- extern对变量的作用就是声明外部变量;
- 如果变量放在后面,但你在前面需要调用;需要在前面声明变量:用的语句是:extern int b;
- .
- static和extern对局部变量的作用;
- 当使用static定义局部变量的时候,开始分配了存储空间,当结束代码不会马上释放存储空间;会等到整个程序结束后,才会释放内存;会延长生命周期;
- 延长聚聚变量的生命周期:程序结束的时候,局部变量才会被销毁;并名优改变局部变量的作用域;
- void test(){static int b = 0;b++;print(“%d”,b);}
- 使用内部局部变量可以是所有的test函数都共享着一个变量b;
- static double pi = 3.14;表示pi调用的每一次的值都一样,不需要重复分配存储空间;
- static修饰局部变量的使用场合;a如果某个函数的调用频率特别高;b这个函数内部的某个变量值是固定不变的;
-
相关阅读:
Sql的同一机器不同数据库联合查询示例
poi 公式自動重新計算
js 取得文件大小
java 读写文件
Postman安装及入门实践(以百度搜索为例)
PostmanTests模块测试方法记录
HTML颜色代码
网盘搜索器 v1.0
线程知识点一:如何传入多个参数
asp.net 实现省市级联<简单方法2>前台实现
-
原文地址:https://www.cnblogs.com/williamliuwen/p/5367572.html
Copyright © 2020-2023
润新知