Access extern variable in C++ from another file

前端 未结 1 1054
长发绾君心
长发绾君心 2020-12-05 11:38

I have a global variable in one of the cpp files, where I am assigning a value to it. Now in order to be able to use it in another cpp file, I am declaring it as exte

相关标签:
1条回答
  • 2020-12-05 11:45

    Sorry, I'm ignoring the request for answers suggesting anything other than the use of header files. This is what headers are for, when you use them correctly... Read carefully:

    global.h

    #ifndef MY_GLOBALS_H
    #define MY_GLOBALS_H
    
    // This is a declaration of your variable, which tells the linker this value
    // is found elsewhere.  Anyone who wishes to use it must include global.h,
    // either directly or indirectly.
    extern int myglobalint;
    
    #endif
    

    global.cpp

    #include "global.h"
    
    // This is the definition of your variable.  It can only happen in one place.
    // You must include global.h so that the compiler matches it to the correct
    // one, and doesn't implicitly convert it to static.
    int myglobalint = 0;
    

    user.cpp

    // Anyone who uses the global value must include the appropriate header.
    #include "global.h"
    
    void SomeFunction()
    {
        // Now you can access the variable.
        int temp = myglobalint;
    }
    

    Now, when you compile and link your project, you must:

    1. Compile each source (.cpp) file into an object file;
    2. Link all object files to create your executable / library / whatever.

    Using the syntax I have given above, you should have neither compile nor link errors.

    0 讨论(0)
提交回复
热议问题