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)
    • 存储类型:静态变量、自动变量、寄存器变量
  • 相关阅读:
    linux API 获得文件属性
    Linux 服务端设计
    Linux C++ 使用LuaBind嵌入lua脚本
    Linux 编译安装Boost (转)
    Navicat for My SQL 查看中文乱码问题
    fastbuild联编ue4 shader的使用
    fastbuild进行ue4 shader连编
    maya 插件学习之pythonCharm和Qt环境搭建
    ue4 头发渲染
    ue4 新渲染管线整理
  • 原文地址:https://www.cnblogs.com/dreamrun/p/4040288.html
Copyright © 2011-2022 走看看