无锡网站建设技术外包,相城区建设网站,网站建设可行性分析表,网站开发和网页上传1. 基本解释#xff1a;extern可以置于变量或者函数前#xff0c;以标示变量或者函数的定义在别的文件中#xff0c;提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用#xff0c;第一个,当它与Cextern可以置于变量或者函数前以标示变量或者函数的定义在别的文件中提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用第一个,当它与C一起连用时如: extern C void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C的C的规则在翻译这个函数名时会把fun这个名字变得面目全非可能是funaBc_int_int#%$也可能是别的这要看编译器的脾气了(不同的编译器采用的方法不一样)为什么这么做呢因为C支持函数的重载啊在这里不去过多的论述这个问题如果你有兴趣可以去网上搜索相信你可以得到满意的解释! 第二当extern不与C在一起修饰变量或函数时如在头文件中: extern int g_Int; 它的作用就是声明函数或全局变量的作用范围的关键字其声明的函数和变量可以在本模块活其他模块中使用记住它是一个声明不是定义!也就是说B模块(编译单元)要是引用模块(编译单元)A中定义的全局变量或函数时它只要包含A模块的头文件即可,在编译阶段模块B虽然找不到该函数或变量但它不会报错它会在连接时从模块A生成的目标代码中找到此函数。 2. static int g_Int在文件前修饰变量指该变量作用域仅作用于本文件在函数体内修饰变量指该变量作用域为整个文件函数运行完也不会消毁变量而在类中则表示变量是属于全部实例化对象所共有的必需初始化且初始化必需在类外不受类访问控制符限定 转载于:https://www.cnblogs.com/flowingwind/p/8304887.html