黑马程序员技术交流社区

标题: extern修饰变量有什么用? [打印本页]

作者: 你好再见    时间: 2015-8-1 22:43
标题: extern修饰变量有什么用?
只是一个修饰会对结果产生什么影响?
作者: 魏武    时间: 2015-8-1 22:51
extern与"C"一起连用时,如: extern "C" void fun(int a, int b); 则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的,
    当extern不与"C"在一起修饰变量或函数时,如在头文件中: extern int g_Int; 它的作用就是声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块或其他模块中使用,记住它是一个声明不是定义!也就是说B模块(编译单元)要是引用模块(编译单元)A中定义的全局变量或函数时,它只要包含A模块的头文件即可, 在编译阶段,模块B虽然找不到该函数或变量,但它不会报错,它会在连接时从模块A生成的目标代码中找到此函数。

作者: 刘唐飞    时间: 2015-8-2 00:29
表示这个变量在其他文件中也可以使用
作者: 18910718368    时间: 2015-8-2 00:34
貌似是本文件修饰和非本文件修饰的引用区别
作者: Anne_lov    时间: 2015-8-2 08:58
我觉得好像是能扩大文件的引用范围。
作者: 花漾    时间: 2015-8-2 14:27
用于全局的吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2