c语言中的extern什么意思
extern是全局变量声明 只要声明全局变量就默认 前面加extern(程序员可以不加,但编译器默认加上) 若本文件 引用别的文件中的全局变量 一定要加上extern 声明一下 例如 #include "my_Fun.c" extern int b;//b是在my_Fun.c中声明了的一个全局变量 这个extern 是个声明他可以在任何地方声明 引用了一个全局变量 (可以试试 在main()函数执行完之后声明 也不会出错) 这样在 工程的总头文件中就不需要考虑 先#include 哪个文件了
c语言全局变量extern怎么用
在C语言中,extern关键字用于声明一个全局变量,表示该变量在其他文件中定义,当前文件中只是引用该变量。使用extern关键字的语法格式如下:
extern 数据类型 变量名;
其中,数据类型表示变量的类型,变量名表示变量的名称。使用extern关键字声明的变量可以在当前文件中使用,但是其定义必须在其他文件中进行。例如,在文件A中声明一个全局变量:
extern int global_var;
在文件B中定义该全局变量:
int global_var = 10;
在文件A中就可以使用该全局变量了,例如:
#include <stdio.h> extern int global_var; int main() { printf("global_var = %d ", global_var); return 0; }
需要注意的是,extern关键字只是声明一个全局变量,而不是定义它。因此,在使用extern关键字声明全局变量时,必须在其他文件中定义该变量,否则会导致链接错误
C语言的extern关键字用来声明一个变量是在其他地方定义的,这样在当前作用域中使用该变量时,就不会将其分配内存。
具体用法是在使用该变量之前先声明其为extern类型,同时需要在其他文件中定义该变量。
这样可以避免在多文件程序中重复定义变量而导致编译器的错误。
需要注意extern变量的作用域只能在一个文件内,而不能在整个程序中生效。
extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。
如果函数的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。即下述两个函数声明没有明显的区别:
extern int f(); 和int f();
当然,这样的用处还是有的,就是在程序中取代include “*.h”来声明函数,在一些复杂的项目中,比较习惯在所有的函数声明前添加extern修饰。
C语言中Static和Extern的具体用法,有例子最好
泻药,这种问题最折磨人了,说一下我的看法不对勿喷,extern 有很多功能,如果 顺序是 int a=2; extern int a;这时候编译器理解extern为引用变量,所以当int a=2;改为static int a=2;
不会出现问题,但是顺序变为 extern int a;static int a=2;extern的职能就是声明变量a,声明了变量a,(区别正常的int a,定义)u有声明就需要有定义,但后后面却定义了static int,所以编译认为a变量只有申明没有定义,自然报错了。