zoukankan      html  css  js  c++  java
  • 关于static的使用

    关于static的使用

    1、局部变量:

      首先,对于局部变量来说,任何一个在函数内部定义的变量(包括main)都属于这个范畴。在运行时,编译器不会对局部变量进行初始化,也就是说局部变量的初始值是随机的,除非对其进行显式赋值。局部变量被存储在程序的栈空间内,使用完毕后会立即释放;

      但是对于静态局部变量来说,有了static的修饰之后,就算不对其进行显式赋值,编译器也会把其设为0。而且静态局部变量被存储在全局数据区中,即使函数返回之后,变量也不会被清除;

      静态局部变量=全局变量,有利于程序的模块化。

    2、全局变量:

      全局变量在程序中,本身被存储在全局数据区中,会被编译器初始化为0;

      在c语言工程中,普通的全局变量可以在不同的程序中使用,只需要extern外部声明,但其他文件中不能有与其重名的变量;

      而静态全局变量仅对当前的文件可见,其他文件不可访问。

    3、函数

      对于函数来说,在返回的类型前面加上static就变成了静态函数,具体用法与全局变量类似;

      静态函数可以跨文件调用。

    总结:

      static的作用:

        1、变为静态变量,存入全局数据区中,防止因忘记初始化而造成的各种bug;

        2、跨文件防止静态全局变量,静态函数重名而造成bug(c语言中);

  • 相关阅读:
    Docker没有vi命令的解决方案
    docker-compose
    liunx 删除文件
    OPB_发票信息表(每笔结算生成一条数据) opb_invoiceinfo
    OPB_发票明细表(每一类药品生成一条数据) opb_invoicedetail
    工程启动类
    MySQL数据库启动,关闭,重启:
    linux压缩和解压缩命令
    降序限位排名
    PHP环境的塔建 防坑指南
  • 原文地址:https://www.cnblogs.com/-hhs/p/11025579.html
Copyright © 2011-2022 走看看