大家好,今天小编关注到一个比较有意思的话题,就是关于c语言中extern是什么意思的问题,于是小编就整理了3个相关介绍c语言中extern是什么意思的解答,让我们一起看看吧。
extern是什么变量?
是一个修饰符。
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。
extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模块中寻找其定义。另外,extern也可用来进行链接指定。
c语言extern跟static可以一起用吗?
//head file library.h
#ifndef LIBRARY_H
#define LIBRARY_h
extern FILE* logfile; //declaring an extern file pointer
/*other random codes*/
#endif
//end of head file
C语言中,全局变量和外部变量有什么区别?
在C语言中,全局变量和外部变量是两种不同的变量类型,它们的主要区别如下:
1. 作用域范围不同:
- 全局变量:定义在任何函数外部的变量称为全局变量。它的作用域从定义处开始,一直持续到文件结束。全局变量可以在整个程序中被访问和使用。
- 外部变量:外部变量是在一个源文件中定义,但是可以被其他源文件中的函数引用和使用。它的作用域也从定义处开始,一直持续到文件结束,但只能在同一程序中的其他源文件中使用。
2. 存储位置不同:
- 全局变量:全局变量存储在静态存储区,即全局数据区。它在程序开始执行时被初始化,并在整个程序运行期间保持存在。
- 外部变量:外部变量也存储在静态存储区。与全局变量相比,外部变量具有更广泛的可见性,可以被多个源文件引用。
全局变量和外部变量在C语言中有一些区别。
首先,全局变量是在函数之外声明的变量,它可以被整个程序中的所有函数访问和使用。
全局变量在程序中的任何地方都是可见的,它的作用域是整个程序。
而外部变量是在一个函数中声明的,但是可以被其他函数调用和使用。
它的作用域只限于声明它的那个函数,其他函数无法直接访问。
但是可以通过一些方法,如函数参数传递或者全局变量等,间接地访问外部变量。
此外,在内存存储上,全局变量在程序启动时就会分配内存空间,并且在整个程序的执行过程中一直存在。
而外部变量则是在函数被调用时分配内存空间,在函数执行完毕后释放。
综上所述,全局变量和外部变量在作用域和内存存储上有所区别,对于程序的使用和访问也有一些差异。
全局变量也称为外部变量,它是在函数外部定义的变量。
它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。有时需要在其他文件中使用extern来声明外部变量,以扩展外部变量的作用域。也可用static声明外部变量,使该变量不能被其他文件引用。有时候他们是一样的,只有稍微一点的区别而已,不用太过于区分的。到此,以上就是小编对于c语言中extern是什么意思的问题就介绍到这了,希望介绍关于c语言中extern是什么意思的3点解答对大家有用。