变量

变量声明和定义区别?

  • 声明仅仅是把变量的声明的位置及类型提供给编译器,并不分配内存空间;定义要在定义的地方为其分配存储空间。
  • 相同变量可以在多处声明(外部变量extern),但只能在一处定义

搞懂全局变量、外部变量、静态全局变量的区别
全局变量

  • 是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。
  • 如果同一个源文件中,全局变量与局部变量同名,则在局部变量的作用范围内,全局变量被“屏蔽”, 即它不起作用。
  • 如果写在文件的开头,可以省略extern。
  • 在静态存储区分配存储空间
  • 全局变量在整个程序中起作用,如果程序包含多个程序文件模块,可以通过外部声明,使得全局变量的作用范围扩展到其他模块,也可以通过定义静态全局变量,使其作用范围仅限制在这个模块

外部变量

  • 全局变量只能被定义一次,如果其他模块要使用该全局变量,需要通过外部变量的声明。
  • 外部变量声明格式: extern 变量名表;

静态全局变量

  • 当程序只有一个文件模块,其与一般全局变量作用相同; 当程序有多个模块时,C语言静态全局变量的作用范围局限于该模块。
posted @ 2023-02-20 11:58  小秦同学在上学  阅读(56)  评论(0编辑  收藏  举报