c语言关键字extern作用,c++的extern关键字
在C语言中,修饰符extern用在变量或函数的声明之前,以标识该变量或函数在其他文件中的定义,当遇到该变量或函数时,提示编译器在其他文件中查找其定义。有几种方法可以使用extern关键字,我们将在下面解释。
(1)extern修改变量的声明。extern关键字可用于修改变量,表示变量已在其他文件中声明。例如,如果我们在file1.c中声明变量int var,然后我们需要在file2.c中使用它,我们可以在file2.c中声明extern int var,然后我们可以在file2.c中使用它。
很明显,所有用extern关键字修改的变量都是全局变量,因为引用其他文件中的局部变量是没有意义的,也超出了局部变量的范围。
说到作用域,我们需要解释一下,虽然用extern关键字修饰的变量都是全局变量,但是如果extern int var声明在函数体中,那么它的作用域就在函数体中。其实这和一般变量的范围是一样的。
(2)extern修改函数声明。本质上,使用extern关键字的函数和变量没有区别。如果我们在file1.c中定义了函数void fun(int var ),我们想在file2.c中应用它,那么我们可以在file2.c中声明extern void fun(int var ),用法和file1.c中没什么区别。
当然,在其他文件中应用函数更常见的方式是引用相应的头文件。那么使用extern关键字和直接引用头文件有什么区别呢?首先引用头文件是一种预处理,而extern声明应该是链接级别的实现。其次,使用头文件进行批量引用自然更方便,但如果只使用个别函数,当然使用extern更直接。
(3)extern用于链接指定。extern一般用于混合编程。如果要在C程序中调用C代码,需要使用extern“C”来声明,这样连接器就会使用C的规范来链接这部分代码。
(4) extern和static。从某种意义上说,extern关键字是static关键字的反义词。extern关键字用于声明要调用的外部变量和函数。而static关键字只是声明给自己用的。当然,当你使用static关键字声明一个变量时,你也定义了这个变量。当extern声明一个变量时,它只是一个声明,因为该变量已经在别处定义了。
欢迎关注:
想更方便及时的阅读相关文章,请关注我的微信微信官方账号【木南创智】
转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。