- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux文件操作详解
extern用法 在别的文件中定义的变量,要想在本文件中使用,必须先用extern声明,例如:extern a;之后就当成在本文件中定义的变量一样使用 外部变量(即全局变量)是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件终了。如果在定义点之前的函数想引用该外部变量,则应该在引用之前用关键字extern对该变量作“外部变量声明”。表示该变量是一个已经定义的外部变量。有了此声明,就可以从“声明”处起,合法地使用该外部变量。 static static 类型声明符在C语言里面主要有三个用途: 1、声明静态局部变量 2、声明静态外部全局变量 3、声明静态外部函数 静态局部变量(与auto对比) 1、?存储空间分配、作用域和生存期 static分配在静态存储区,作用域仅仅限于声明该变量的函数内部。在程序整个运行期间都不释放,生存期贯穿于程序运行的整个过程。 auto类型分配在栈上,属于动态存储类别,占动态存储区空间,作用域仅仅限于声明该变量的函数内部。函数调用结束后自动释放,生存期不过是在声明该变量的函数内部。 2、赋初值时的处理方式 static静态局部变量在编译时赋初值,即只赋初值一次; auto自动变量赋初值是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。 3、未赋初值时的处理方式 如果在定义局部变量时不赋初值的话: static静态局部变量,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。 auto自动变量,如果不赋初值则它的值是一个不确定的值。 int fun (void);int main (void){? int x;? x=fun();?? ? printf( First transfer function a is %d\n, x);?? ? x=fun(); ? printf( Second transfer function a is %d\n, x);? x=fun();? printf( Third transfer function a is %d\n, x);? return 0;?? }int fun (void){? int a=0;? a+=100;? return a;} 程序结果为:? First transfer function a is 100? Second transfer function a is 100? Third transfer function a is 100 那么我们稍稍做下修改,将fun中的a定义成static intfun函数如下:int fun (void){? static int a=0;? a+=100;? return a;} int fun (void);int main (void){? int x;? x=fun();?? ? printf( First transfer function a is %d\n, x);?? ? x=fun(); ? printf( Second transfer function a is %d\n, x);? x=fun();? printf( Third transfer function a is %d\n, x); return 0;?? }int fun (void){? static int a=0; ? a+=100;? return a;} 程序执行结果:? First transfer function a is 100? Second transfer function a is 200? Third transfer function a is 300? 静态外部全局变量 在C语言中static还用来声明静态外部全局变量,那么这个全局变量的作用域就被限制在本文件内部。 外部变量(即全局变量)是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件终了。如果在定义点之前的函数想引用该外部变量,则应该在引用之前用关键字extern对该变量作“外部变量声明”。表示该变量是一个已经定义的外部变量。有了此声明,就可以从“声明”处起,合法地使用该外部变量。 static int a;int fun (void);void fun2(int y);int main (void){? int x;? fun2(100);? x=fun();
您可能关注的文档
- 19物质文明的进步.ppt
- LED台灯维修.ppt
- 1_基本信息_95-47-6_二甲苯.doc
- 1_填空题库.doc
- LanMan_C05_以太网.ppt
- 1_化工设备常用材料.ppt
- 1_2装配工具常识.pptx
- KIS专业版V12.0完整产品培训.pptx
- 1_工业控制网络第一章.ppt
- 1_电机学中的基本电磁定律.ppt
- 陕西省渭南市澄城县部分学校2024-2025学年八年级上学期期末评价数学试题.docx
- 机耕道施工方案.docx
- 新型建筑结构材料在节能减排中的应用分析教学研究课题报告.docx
- 二零二五年度托盘销售与市场拓展合作协议范本.docx
- 基于初中地理课程的学生地图识读能力提升研究以拼图竞赛为教学策略教学研究课题报告.docx
- 二零二五年度托盘销售与物流配送优化方案合同.docx
- 高中化学课堂中培养学生实验操作能力研究教学研究课题报告.docx
- 高中数学课堂探究性学习模式的应用研究教学研究课题报告.docx
- 血液肿瘤化疗后口腔感染病原学分析及综合防治策略研究教学研究课题报告.docx
- 初中音乐课程中音乐与数学学科的联系研究教学研究课题报告.docx
文档评论(0)