zoukankan      html  css  js  c++  java
  • VC++定义全局变量及extern用法

    基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。

    也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的,C++的规则在翻译这个函数名时会把fun这个名字变得面目全非,可能是fun@aBc_int_int#%$也可能是别的,这要看编译器的"脾气"了(不同的编译器采用的方法不一样),为什么这么做呢,因为C++支持函数的重载啊,在这里不去过多的论述这个问题,如果你有兴趣可以去网上搜索,相信你可以得到满意的解释!
    第二,当extern不与"C"在一起修饰变量或函数时,如在头文件中: extern int g_Int; 它的作用就是声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块活其他模块中使用,记住它是一个声明不是定义!也就是说B模块(编译单元)要是引用模块(编译单元)A中定义的全局变量或函数时,它只要包含A模块的头文件即可,在编译阶段,模块B虽然找不到该函数或变量,但它不会报错,它会在连接时从模块A生成的目标代码中找到此函数。

    vc定义全局变量及extern用法 :
    
    全局变量一般这样定义:
    
    1。在一类的.cpp中定义 int myInt;
    
    然后再在要用到的地方的.cpp里extern int myInt;这样就可以用了。
    
    2。在stdafx.cpp中加入:
    
    int myInt;
    
    然后在stdafx.h中加入:
    
    extern int myInt
    
    这样定义以后无论在什么文件中都是可见的.

    原文链接:vc定义全局变量及extern用法

    全局变量一般这样定义:
    1。在一类的.cpp中定义 int myInt;然后再在要用到的地方的.cpp里extern int myInt。
    2。在stdafx.cpp中加入:int myInt;然后在stdafx.h中加入:extern int myInt
    3。先定义一个Glbs.h,把所有的全局变量原始定义放进去。然后定义一个Externs.h,把先前定义在Glbs.h中的变量都加上extern。注意:如果你在Glbs.h中设置了初值,那么在Externs.h中就不要加值了。然后调用时,第一次调用的
      #include <Glbs.h>,以后调用的#include <Externs.h>
    4.在CApp中定义变量:CString g_sUser;//定义全局
     在要引用的类中如此:extern CSvApp theApp;//加入这句在.CPP文件的构造函数前.
    在引用时:if( theApp.m_sUserName == "") ;//这样引用.
    5.如果要使用自定义的全局自定义类一般如下方法,可使在所有文件中都可以使用。
      一,在stdafx.h中加入类的头文件
      二,在stdafx.cpp中加入类的定义 如:CMyClass g_class;
      三,在你程序的app类中,如果CTestProjectApp类的头文件的开头处加上 extern CMyClass g_clas。
  • 相关阅读:
    SQL Server 2008 PREEMPTIVE_OS_GETPROCADDRESS 等待类型
    数据库使用 jemalloc 内存优化算法
    my.cnf 推荐配置
    WIN 命令合成一个大内存的图片怎么搞
    jupyter notebook加载DDP预训练模型
    model.add_module
    einsum爱因斯坦求和
    skimage.measure.label
    easyocr下载模型失败
    测试面试题 05
  • 原文地址:https://www.cnblogs.com/rainbow70626/p/8972660.html
Copyright © 2011-2022 走看看