相信初学C语言的读者们可能都没有看过这种写法,static竟然还能修饰函数。 情况一:在test1.c中的内容: 代码语言:javascript 复制 intAdd(int x,int y){returnx+y;} 在test.c中的内容: 代码语言:javascript 复制 #include<sdtio.h>extern intAdd(int x,int y);intmain(){printf("%d\n",Add(2,3));r...
1.两者特点 两者都是C语言中的关键字,static是静态的意思,可以用来修饰局部变量,修饰全局变量,修饰函数,extern是用来声明外部符号的。 2.作用域和生命周期 2.1作用域: 作用域是程序设计理念,通常来说,一段程序代码中所用到的名字并不总是有效的,而限定这个名字的可用性的代码范围就是这个名字的作用域。 2.2生命...
一、extern与函数 之前我提到过一句话:如果一个程序中有多个源文件(.c),编译成功会生成对应的多个目标文件(.obj),这些目标文件还不能单独运行,因为这些目标文件之间可能会有关联,比如a.obj可能会调用c.obj中定义的一个函数。将这些相关联的目标文件链接在一起后才能生成可执行文件。 先来理解2个概念: 外部函数...
return 0;} extern存储类别 extern存储类别用于声明在其他文件中定义的全局变量,表示该变量可以在多个文件中共享,初始值由定义时指定。例如,假设有两个文件file1.c和file2.c,file1.c中定义了一个extern类型的全局变量d,初始值为10,file2.c中声明了该变量,表示可以在file2.c中使用该变量。下面是file1.c...
C语言是一种通用编程语言,广泛应用于系统软件、嵌入式系统等领域。在C语言中,extern、static、struct、enum、union和volatile等关键字具有特定的作用和用途。理解这些关键字的工作原理和应用场景,对于编写高效、可维护的代码至关重要。一、extern关键字extern关键字用于声明一个变量或函数,其定义在别的文件中。当你想在...
C语言中的每一个变量和函数有两个属性:数据类型和数据的存储类别。数据类型(整形、字符型等),存储类别是指数据在内存中存储的方法,存储方法有两大类:静态存储类和动态存储类。具体包括四种:自动的(auto),静态的(static),寄存器的(register)和外部的(extern)。 auto变量:函数中的局部变量,如不专门声明static,一般...
在C语言中,extern和static是两个非常重要的关键字,它们在变量声明和存储方面起着关键作用。 一、extern关键字 extern关键字用于声明一个变量或函数是在其他文件中定义的。它告诉编译器在其他地方查找变量或函数的定义。extern关键字在变量或函数的使用前声明时使用。 例如,假设我们有一个在其他文件中定义的变量x,我们...
欢迎大家来点赞评论,互相学习交流促进!!! 谢谢
三、static对函数的作用 1.定义一个内部函数; 2.声明一个内部函数; 3.static不可神略; 四、extern对函数的作用: 1.完整的定义一个外部函数; 2.完整的声明一个外部函数; 3.默认情况下,声明和定义的函数都是外部函数,因此,extern可以省略; 五、全局变量分为两种(外部变量和内部变量) ...
二、变量中的extern和static C语言中,一个变量只有先定义或者声明了,才能被后面的函数访问。 extern一般用来声明变量,也可以用来定义变量,如果用来定义变量,编译器会发出警告,所以最好不用extern定义变量。static只能用于定义变量。 1、extern 在当前源文件定义了一个变量int a,可以用extern int a声明该变量。