博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《C语言》-(static和extern)
阅读量:7107 次
发布时间:2019-06-28

本文共 845 字,大约阅读时间需要 2 分钟。

 

一、外部函数:

  • 定义:定义的函数能被本文件其他文件访问;
  • 特点:

1.默认情况下,所有的函数都是外部函数

2.不允许有同名的外部函数;

 

二、内部函数:

  • 定义:定义的函数只能被本文件访问,其他文件不能直接访问;
  • 特点:

允许不同文件中有同名的内部函数;

三、static对函数的作用

1.定义一个内部函数;

2.声明一个内部函数;

3.static不可神略;

四、extern对函数的作用:

1.完整的定义一个外部函数;

2.完整的声明一个外部函数;

3.默认情况下,声明和定义的函数都是外部函数,因此,extern可以省略;

五、全局变量分为两种(外部变量和内部变量)

1.外部变量

  • 定义:定义的变量能被本文件和其他文件访问;
  • 特点:

1.默认情况下,所有的变量都是外部变量;

2.不同文件中的同名变量都代表同一个变量;

 

2.内部变量

  • 定义:定义的变量只能被本文件访问;
  • 特点:

不同文件中的同名变量互不影响;

六、static对变量的作用

  • 定义一个内部变量;

七、extern对变量的作用

  • 声明一个外部变量;

八、局部变量

1.static修饰局部变量

  • 延长局部变量的生命周期

1.若不加static修饰,如在test函数内部定义了一个局部变量a,即:int a = 0; 当test函数运行结束,a就会被销毁,若再次调用test函数就又会对a分配存储空间;

2.若加上static修饰,如:static int a = 0; 直到程序结束的时候,a才会被销毁;

  • static修饰局部变量并没有改变变量的作用域;
  • 所有的test函数都共享着同一个变量a(变量a加static修饰后),即:多次调用test函数,加static修饰的变量a在test函数结束时,并没有被销毁,当下次再调用test函数时,不会再分配存储空间给被static修饰过的变量a;

代码练习:

 

运行结果:

 
 
 
 
 

转载于:https://www.cnblogs.com/unique-ios/p/4273723.html

你可能感兴趣的文章
JS原型继承和类式继承
查看>>
Java并发容器之CopyOnWriteArraySet与ConcurrentSkipListSet
查看>>
玩转Android之数据库框架ActiveAndroid的使用
查看>>
全排列组合算法
查看>>
各个刷流量软件总结对比
查看>>
SolidEdge如何为零件指定不同的颜色 给零件着色 给装配体着色
查看>>
小米2S 小米手机如何手动升级到开发版
查看>>
HTML的DIV如何实现水平居中
查看>>
【Java面试题】31 介绍Collection框架的结构
查看>>
POJ2396 Budget [有源汇上下界可行流]
查看>>
在Linux下制作一个磁盘文件,在u-boot 阶段对emmc 烧写整个Linux系统方法
查看>>
图解后缀表达式的计算过程
查看>>
Codeforces Round #408 (Div. 2) 题解【ABCDE】
查看>>
Android学习笔记技巧之给文本加边框
查看>>
前端学习 -- Css -- 盒子模式
查看>>
微软小冰代言英孚是场彻头彻尾的炒作?
查看>>
递归实现全排列(一)
查看>>
【回文】leetcode - Shortest Palindrome
查看>>
x86服务器中网络性能分析与调优 转
查看>>
RAII手法封装相互排斥锁
查看>>