zoukankan      html  css  js  c++  java
  • 全局变量和全局静态变量

    作用域:
    全局变量整个程序空间,全局静态变量只在包含它的cpp中使用,下面举个栗子

    global.h
    #ifndef GLOBAL_H
    #define GLOBAL_H
    
    static int gs_a;
    extern int g_b; //multiple definition,注意extern
    
    #endif // GLOBAL_H
    

    testa.h

    #ifndef TESTA_H
    #define TESTA_H
    
    class TestA
    {
    public:
        TestA();
    };
    
    #endif // TESTA_H
    

    testa.cpp

    #include "testa.h"
    #include "global.h"
    #include <iostream>
    
    TestA::TestA()
    {
        gs_a = 1;
        g_b = 1;
        std::cout << "TestA gs_a : " << gs_a << " g_b : " << g_b << std::endl;
    }
    

    testb.h

    #ifndef TESTB_H
    #define TESTB_H
    
    class TestB
    {
    public:
        TestB();
    };
    
    #endif // TESTB_H
    

    testb.cpp

    #include "testb.h"
    #include "global.h"
    #include <iostream>
    
    TestB::TestB()
    {
        gs_a = 2;
        g_b = 2;
        std::cout << "TestB gs_a : " << gs_a << " g_b : " << g_b << std::endl;
    }
    

    main.cpp

    #include <iostream>
    #include "global.h"
    #include "testa.h"
    #include "testb.h"
    
    int g_b = 0; //undefined reference to g_b,注意初始化
    int main(int argc, char *argv[])
    {
        gs_a = 3;
        g_b = 3;
        std::cout << "Main gs_a : " << gs_a << " g_b : " << g_b << std::endl;
        TestA ta;
        std::cout << "Main::TestA gs_a : " << gs_a << " g_b : " << g_b << std::endl;
        TestB tb;
        std::cout << "Main::TestB gs_a : " << gs_a << " g_b : " << g_b << std::endl;
        return 0;
    }

    输出:

    Main gs_a : 3 g_b : 3
    TestA gs_a : 1 g_b : 1
    Main::TestA gs_a : 3 g_b : 1
    TestB gs_a : 2 g_b : 2
    Main::TestB gs_a : 3 g_b : 2
    
  • 相关阅读:
    Android 代码判断是否获取ROOT权限
    Tomcat环境变量
    Ubuntu Android环境搭建
    java 取出文本文件中的空行
    Step by Step for configuration of sending customize IDOC/自定义IDOC发送配置
    Oracle SQL语句执行完整过程:
    Continue Posting, Keep Fighting
    Moto G 通话没声音
    Android 手机技巧
    Digg Reader 登录不了,原来如此
  • 原文地址:https://www.cnblogs.com/nuoforever/p/15103360.html
Copyright © 2011-2022 走看看