重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
全局变量,同一个编译文件范围内,只需要定义一次或声明一次,就可以在该文件内任意地方引用。你这个例子,是本文件内定义的全局变量,当然不需要extern声明了。
创新互联专注于企业营销型网站、网站重做改版、资中网站定制设计、自适应品牌网站建设、H5响应式网站、商城开发、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为资中等各大城市提供网站开发制作服务。
实际上非static的全局变量,哪怕是定义在别的编译文件里的,理论上可以不用extern进行外部声明,顶多在编译的时候编译器会告警,但链接的时候还是会找到这个全局变量,不影响生成可执行文件。
在源文件A1.c中调用A2.c 中的函数有两种方法:
1、在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型(声明)就可以了,例如:
在A2.c中:有函数void A2(){...};。
在A1.c中:在文件前头增加一行:void A2();就可以了。
2、把A2.c中完整定义的函数的原型,写到一个A2.h文件中,然后在A1.c的文件头增加#include "A2.h"就可以了。
以上两种方法,在A1.c中都可以正常的调用,就跟在A2.c中调用一样。
其实函数默认是外部的,只要在其他文件中声明就能使用;但是注意如果在前面加上static,就只能在本文件中使用了,不能再被其他的文件调用。
扩展资料:
1、一个.h文件要 对应有一个.c文件,这样链接器就可以调用这个文件里的函数。比如a.h 和 a.c。
2、把相应的函数定义写在.c文件中。这里要强调一点:要加上#include ".h",这个一般作为一种工程规范。因为如果.c文件中的函数也需要调用同个.c中的其它函数,那么这个.c往往会include对应的.h。比如头文件里进行了变量的声明,这个时候对应的.c文件是一定要加上这个头文件的。
3、再在其他的main.c文件开头添加#include "a.h"。
C语言里面没有引用的说法,只有C++里面有。C++里引用就是给变量定义一个别名,操作这个别名就是操作原变量。
比如,我们定义一个引用:
int a=10; //定义一个普通变量
int ref=a; //定义一个变量a的引用
ref=20; //这里对ref进行操作其实就是对a进行操作
变量主要是在参数传递的时候非常有用,当你的函数参数是一个值参数的时候,我们一般的做法是传递一个指针进去,这样就导致我们在函数里操作的都是指针,这样其实很不方便,如果使用引用的话就可以非常方便。
比如定义一个参数是引用的函数
void func(int b)
{
b++;
}
//调用
int a=100;
func(a); //调用的时候直接传递参数进去
上面的方式可以实现和指针一样的效果,但是更加方便
局部变量是不能在函数之间相互调用的,你要是一定要做,可以用extern进行声明。
有一个简单的方法,就是把temp定义成全局变量就行了。
int temp;
void main(void)
{ int a=0,b=1;
for (;b11;b++)
{ temp=b;
b=a+b;
a=temp;
}
void NEED (void)
{ int c,d;
d= temp;
}
X函数定义时没有要求输入变量,调用时候却输入了x和y,当然有问题啊