关于全局变量和静态变量的小认识

本文章记录本人在嵌入式c语言学习过程中的一些关于变量的小知识

全局变量

===================================================

什么是全局变量?

全局变量分为两种:

 1. 动态全局变量

  定义:    在函数体前定义且定义前加   extren

  作用:   使该变量在整个项目中可见,生命期为程序运行到程序的退出

 

  2. 静态全局变量

   定义:    在函数体前定义且定义前加 static 或者不加关于作用域关键词的东西

   作用:   使改变量仅在本文件中可见,生命期为程序运行到程序的退出

 

=======================================================================

静态变量

   3. 静态局部变量

    定义:   在函数体里定义且在定义前加    static

    作用:   是使该变量在{}范围内能见,生命期为程序运行到程序的退出

 

   4. 局部变量(也叫动态局部变量)

   定义:   在函数体里面定义且定义前不需要加关于作用域关键词的东西

   作用:   使该变量在{}范围内能见,生命期由系统决定(函数退出被os回收)

 

==================================================================================

PS : 所有生命期为程序运行到程序退出的变量都会在程序加载时os为其赋值为零..但在编译成二进制(或多个二进制组织成的链接文件)中并不会赋值,因为在链接文件里这些变量只是一个标记!

posted @ 2017-02-27 15:30  得了白学症  阅读(219)  评论(0编辑  收藏  举报