• 全局变量与全局函数


    https://www.cnblogs.com/wanghetao/p/4492582.html

    https://www.cnblogs.com/Dageking/p/3185230.html

    http://www.cnblogs.com/catch/p/4314256.html:初始化

    https://www.cnblogs.com/tshua/p/5741009.html

    编译单元-作用域

     https://www.cnblogs.com/wllwqdeai/p/11147412.html

    一、全局变量

    1.声明

    https://www.cnblogs.com/wanghetao/p/4492582.html

    头文件.h 中申明;

    1)需要加extern么?在函数之外,加不加都默认是全局变量,不过不加extern,声明的同时,默认定义,这样被多次包含时,会导致多重定义;

    2)宏名有效范围!!

    /*xx头文件*/
      #ifndef _XX_头文件.H
      #define _XX_头文件.H
      int A;
      #endif

            那么,很糟糕的是,这里的int A是个全局变量的定义,所以如果这个头文件被多次引用的话,你的A会被重复定义,显然语法上错了。只不过有了这个#ifndef的条件编译,所以能保证你的头文件只被引用一次,不过也许还是不会出岔子,但若多个c文件包含这个头文件时还是会出错的,因为宏名有效范围仅限于本c源文件,所以在这多个c文件编译时是不会出错的,但在链接时就会报错,说你多处定义了同一个变量

    也可以在任意cpp中函数外声明;

    2.初始化???何时初始化???

    全局变量的初始化要在 main 函数执行前完成,常识无疑;????

    可以在任意cpp中函数外部定义,仅能定义一次;别的cpp中可以在函数外extern声明;

    3.访问

    1)include声明了全局变量的.h文件;

    2)如果不包含,在每个cpp中调用全局变量或全局函数之前,先extern ;

    4.修改

    只能在函数内部修改全局变量!不过在函数外部,那就是全局变量作用域,全局变量域可以调用变量么?(不调用怎么修改)

    5.const修饰全局变量

    https://www.cnblogs.com/wanghetao/p/4492582.html

    const +全局变量:跟static相同的特性,即只能作用于本作用域;(一个cpp中定义的const全局变量,在另一个cpp中extern无法访问)

    external +const +全局变量:同external+全局变量,即其他编译单元可以extern访问,声明格式得相同;(一个cpp中定义的extern+const+全局变量,在另一个cpp中extern声明后可以访问;)

    二、全局函数

    https://baike.baidu.com/item/全局函数/10185428?fr=aladdin

  • 相关阅读:
    tensorflow 学习
    join-semi and join-anti
    深入拆解Tomcat_Jetty 笔记
    Set化
    DDD实战-笔记
    高并发系统设计-笔记
    技术管理
    性能调优-笔记
    程序员是如何思考的-笔记
    LeetCode
  • 原文地址:https://www.cnblogs.com/wllwqdeai/p/9978876.html
Copyright © 2020-2023  润新知