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)
    • 存储类型:静态变量、自动变量、寄存器变量
  • 相关阅读:
    1442. Count Triplets That Can Form Two Arrays of Equal XOR
    1441. Build an Array With Stack Operations
    312. Burst Balloons
    367. Valid Perfect Square
    307. Range Sum Query
    1232. Check If It Is a Straight Line
    993. Cousins in Binary Tree
    1436. Destination City
    476. Number Complement
    383. Ransom Note
  • 原文地址:https://www.cnblogs.com/dreamrun/p/4040288.html
Copyright © 2011-2022 走看看