zoukankan      html  css  js  c++  java
  • static关键字(C语言)

      碰到关键字static,总有种傻傻记不清楚的感觉,看《C和指针》,感觉其中对static总结的不错,特地记下来,给自己提个醒,大家也可以参考下。

    来自《C和指针》P42-45

    根据不同的上下文,static关键字有不同的意思:

    1. 当static用于函数定义,或用于代码块之外的变量声明时,static关键字用于修改标识符的链接属性,从extern改为internal,但标识符的存储类型和作用域不受影响。用这种方式声明的函数或变量只能在声明它们的源文件中访问。 [注:static只对缺省链接属性为external的声明才有改变链接属性的效果]        
    2. 当static用于代码块内部的变量声明时,static用于修改变量的存储类型,从自动变量修改为静态变量,但变量的链接属性和作用域不受影响。用这种方式声明的变量在程序执行之前创建,并在程序的整个执行期间一直存在,而不是每次在代码块开始执行时创建,在代码块执行完毕后销毁。

     

    来自《C和指针》P39-45

    • 作用域:代码块作用域、文件作用域(代码块之外声明的标识符)、原型作用域(只适用于在函数原型中声明的参数     名)、函数作用域(只适用于语句标签)
    • 链接属性[决定如何处理在不同文件中出现的标识符]:外部(external)、内部(internal)、无(none)
    • 存储类型:静态变量、自动变量、寄存器变量
  • 相关阅读:
    线程池的优雅关闭实践
    InheritableThreadLocal原理解析
    线程池踩坑
    两个线程通讯(生产-卖面包问题)
    谈谈redis的热key问题如何解决
    中国软件杯选题A1数据智能分析报告系统
    《程序员的思维修炼》读后感
    《算法导论》读后感
    《重构》读后感
    《代码整洁之道》读后感
  • 原文地址:https://www.cnblogs.com/dreamrun/p/4040288.html
Copyright © 2011-2022 走看看