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。
  • 相关阅读:
    CSS-calc 兼容写法
    一行代码轻松搞定各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
    地图调起URI API(通过连接直接调用百度地图)
    获取字体图标(阿里图标网站)
    CSS-解决苹果点击高亮、安卓select灰色背景(select下拉框在IOS中背景变黑、出现阴影问题)
    移动端 input 输入框实现自带键盘“搜索“功能并修改X
    常用正则表达式—邮箱(Email)
    JS正则表达式验证是否为11位有效手机号码
    input,textarea在ios和Android上阴影和边框的处理方法(在移动端)
    three.map.control
  • 原文地址:https://www.cnblogs.com/rainbow70626/p/8972660.html
Copyright © 2011-2022 走看看