大家好,今天小编关注到一个比较有意思的话题,就是关于c语言中extern是什么意思的问题,于是小编就整理了2个相关介绍c语言中extern是什么意思的解答,让我们一起看看吧。
c语言中的extern是什么,有什么作用啊?
1、extern void add(int x,inty);表示该函数主体不在当前模块中,在另一个模块中(文件)
2、extern int total;表示该变量在另一个模块总定义过。一般都把一些经常用到的枚举和变量之类的写在.h头文件中。这样要引用时直接include "头文件名"就可以了调用里面所有的枚举和变量了。
在大型项目中,引用别的.c文件中的函数则只能用extern,因为.c文件是不能 include的。所以想引用别的.c文件中的函数和全局变量、枚举等等的就只能用extern。
extern是全局变量声明 只要声明全局变量就默认 前面加extern(程序员可以不加,但编译器默认加上) 若本文件 引用别的文件中的全局变量 一定要加上extern 声明一下 例如 #include "my_Fun.c" extern int b;//b是在my_Fun.c中声明了的一个全局变量 这个extern 是个声明他可以在任何地方声明 引用了一个全局变量 (可以试试 在main()函数执行完之后声明 也不会出错) 这样在 工程的总头文件中就不需要考虑 先#include 哪个文件了
C语言中如何定义全局变量?
在C语言中,可以使用关键字extern和static定义全局变量,它们的作用分别如下:
extern关键字定义全局变量
使用extern关键字定义的全局变量实际上是在其他文件中定义的全局变量的声明。在当前文件中声明全局变量的时候,需要在变量定义前加上extern关键字,告诉编译器该变量在其他地方定义。示例如下:
// 共享全局变量定义在其他文件 extern int global_var; int main() { // 使用共享全局变量 global_var = 1; }
static关键字定义全局变量
使用static关键字定义的全局变量是静态全局变量。它具有与全局变量相同的作用域,但只能被当前文件的函数访问,其他文件访问不到。示例如下:
// 静态全局变量 static int static_var; void function() { // 使用静态全局变量 static_var = 1; } int main() { // 使用静态全局变量 static_var = 2; }
需要注意的是,全局变量在程序运行后一直存在于内存中,因此应谨慎使用,并且尽量避免使用全局变量,以减少程序的耦合度和不必要的程序复杂性。
在C语言中,可以通过在函数外部声明变量来定义全局变量。全局变量可以在整个程序中使用,它们在程序开始运行时就会被初始化,并在程序结束时被销毁。
全局变量的定义通常位于函数外部,如果需要在不同的文件***享全局变量,需要使用extern关键字进行声明。同时要注意全局变量会增加程序的复杂性,容易造成变量被不经意间修改的问题,因此需要谨慎使用。
到此,以上就是小编对于c语言中extern是什么意思的问题就介绍到这了,希望介绍关于c语言中extern是什么意思的2点解答对大家有用。