- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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();
您可能关注的文档
最近下载
- 无人机驾驶员技能考核内容结构表二级.pdf VIP
- 中国康养产业消费趋势报告(2025).pdf VIP
- 小区消防设施维修方案.docx VIP
- 无人机驾驶员技能考核内容结构表一级.pdf VIP
- 第三单元 珍爱我们的生命 测试卷(含答案)道德与法治七年级上册(2024).doc VIP
- TSIOT 803-2020 虚拟现实用户界面设计规范.pdf VIP
- 医院保洁员感控培训课件.pptx VIP
- 【完整正版高清】T_CFLP 0016-2023《国有企业采购操作规范》【2023修订版】.doc VIP
- 2025年一级建造师之一建民航机场工程实务考试题库【历年真题】.docx VIP
- Reading explorer-F级教学精品课件-U3A.pptx VIP
文档评论(0)