1.static 与 extern 对局部变量的作用

 static 和extern 都是用来修饰变量(局部的static 实际也是全局的)
static 修饰的变量 只有你的包含那个变量定义的源代码文件可以访问(内部的变量)
extern定义的变量的哪个源文件都可以访问 只要声明了就可以(外部变量)

2.static 与 extern 对局部变量的作用

static 

1) 延长局部变量的生命周期,从程序启动到程序退出,但是它并没有改变变量的作用域

2)定义变量的代码在整个程序运行期间仅仅会执行一次

extern

        1)不能修饰局部变量

3.static 与 extern 对全局变量的作用

static 对全局变量的作用
1)static修饰的全局变量,表示该全局变量只能在当前文件中使用,而不能再其他文件中使用
2)在不同的文件中,使用static可以声明同名变量 exter 对全局变量的作用
1)extern修饰的全局变量,表示可以在当前文件中使用也可以在其他文件使用
2)extern声明的全局变量在不同的文件中不能同名,两个文件需有包含关系 3)如果在.h文件中没有声明 可以在代码上 extern in a;//声明一下
4)全局的声明时 可以省略extern
5)不能用extern 声明不存在的变量
6)全局变量默认初始化为0

  

4.static 预 extern修饰函数

static 和 extern 对函数的作用

     static 修饰的函数,是一个内部函数(只能在定义的那个文件中使用);

     函数默认是extern修饰的,extern修饰的函数,可以在调用之前在声明

  

static 及 extern的更多相关文章

  1. 16-static和extern关键字2-对变量的作用

    上一讲介绍了static和extern对函数的作用,static用来定义一个内部函数,不允许其他文件访问:extern用来定义和声明一个外部函数,允许其他文件访问.static和extern对变量也有 ...

  2. 15-static和extern关键字1-对函数的作用

    一.extern与函数 如果一个程序中有多个源文件(.c),编译成功会生成对应的多个目标文件(.obj),这些目标文件还不能单独运行,因为这些目标文件之间可能会有关联,比如a.obj可能会调用c.ob ...

  3. const、static和extern的正确使用方式

    我们在看一些大牛的第三方时,里面会出现很多const.static和extern,尤其是const和static,const和extern的结合使用,直接令很多小伙伴懵逼了,今天就详细讲解一下这三个关 ...

  4. 《OOC》笔记(1)——C语言const、static和extern的用法

    <OOC>笔记(1)——C语言const.static和extern的用法 C语言中const关键字用法不少,我只喜欢两种用法.一是用于修饰函数形参,二是用于修饰全局变量和局部变量. 用c ...

  5. C语言-07-预处理、typedef、static和extern

    预处理 1> 使用注意 以#开头 在代码被翻译成0和1之前执行 预处理指令可以出现在任何位置 作用域是从编写指令那一行开始到文件结束 2> 宏定义 基本使用 ① 使用#define定义 ② ...

  6. 转载 浅谈C/C++中的static和extern关键字

    浅谈C/C++中的static和extern关键字 2011-04-21 16:57 海子 博客园 字号:T | T   static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性.ext ...

  7. static和extern关键字 对函数的作用

    本文目录 • 一.extern与函数 • 二.static与函数 • 三.static.extern与函数的总结说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能 ...

  8. static和extern关键字 对变量的作用

    本文目录 • 一.在Java中,全局变量的定义没有严格的位置规定 • 二.在C语言中,全局变量定义的位置是有限制的 • 三.重复定义同一个变量 • 四.不同源文件中的同名变量 • 五.static关键 ...

  9. IOS 成员变量,全局变量,局部变量定义,static与extern的区别

    IOS 成员变量,全局变量,局部变量定义,static与extern的区别 1,先说定义 1)成员变量定义:生存与该类的生命周期,变量存活周期跟你定义的该类实体对象一样:作用域是整个实体对象:可以在h ...

随机推荐

  1. cuda内存总结

    1.shared memory __shared__ 声明为共享内存,将会保存在共享内存中  2.constant memory __constant__ 声明为常量内存,将会保存在常量内存中,常量内 ...

  2. oStrictHostKeyChecking=no 参数

    应用在脚本当中,避免使用域名链接服务器的时候,检查knows_hosts文件

  3. 网页html结构搭建方法总结

    在div+css布局中,一般都这样来整体构架的: <div id="header"></div><div id="center"& ...

  4. VSCode里的一些有用的插件

    1.EaseServer 作用:开启本地 http server,然后在browser里打开html: 在调试页面的时候,打开页面比较方便,不需要先开启server,再打开html 2.Debugge ...

  5. 持续集成:TestNG中case之间的关系

    持续集成:TestNG中case之间的关系   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...

  6. 使用assets目录来实现插件机制

    /** * 管理接口. * @author jevan * @version 1.0 at 2013-12-6 * */ public interface IManage { /** * 注册平台接口 ...

  7. Maven项目热部署到Tomcat容器下

    第一步: 配置Tomcat的登陆的用户名与密码     在 apache-tomcat-7.0.33\conf\ tomcat-users.xml,第40行添加如下: <role rolenam ...

  8. jQuery基础学习(一)—jQuery初识

    一.jQuery概述 1.jQuery的优点      jQuery是一个优秀的JavaScript库,极大地简化了遍历HTML文档.操作DOM.处理事件.执行动画和开发Ajax的操作.它有以下几点优 ...

  9. ElasticSearch集群安装配置

    1. 环境说明 Cent OS 7 jdk-8u121-linux-x64.tar.gz elasticsearch-5.2.1.zip 2. 系统环境配置 新建进程用户 修改File Descrip ...

  10. c++:自己动手实现线程安全的c++单例类

    前段时间使用c++做项目开发,需要根据根据配置文件路径加载全局配置文件,并对外提供唯一访问点.面对这样一个需求,自然的就想到了使用单例模式来创建一个单例配置对象,供外部调用.一开始想使用boost中自 ...