Ⅰ 两个C文件如何共享一个变量
可以把常量定义在一个头文件中,需要用到的.cpp文件调用这个.h文件就行。你试试,记得上学时这么做过。
c语言中一个项目只能有一个main函数,你这属于两个项目,就算都运行起来了,也是不同的进程,进程是资源分配的基本单位,也就是说,两个进程拥有不同的资源,不可能共享一个变量的。
Ⅱ C语言中定义一个结构体如何在不同的.C文件中使用。
比如三个.c文件一个.h文件
c 2.c 3.c 4.h
这三个头文件都引用4.h include<4.h>
4.h中定义一个结构体类型struct test{};
1.c中定义一个该结构体类型的全局变量struct test mode;
4.h中extern struct test mode;
其他.c文件就可以直接使用这个结构体变量了,并且是共用的
Ⅲ 关于C语言中变量在两个.C文件中的调用问题
我有几个方案,我经常在VC下使用,都没问题,你试试:
方案1:在一个文件中定义全局变量“类型 tmp;”,注意是全局变量。另一个文件全局变量的位置使用“extend 类型 tmp;”。
方案2:把hal.c文件里的函数参数加一个指向tmp的指针,tmp在main中,在hal.c里的文件使用tmp时,把地址传过去就行了。
例如:
mian()
{
char tmp;
.....
.....
}
function(&tmp;...;...);
...
}
在hal.c里面
function(char *tmp;...;...)
{
....
}
这样就行了
方案1、2都不用hal.h
方案3:你把hal.c的子函数写进hal.h,在mian函数之前include一下就行了。
但不推荐此方法。
对你出现的问题的理解:
你在hal.h中声明了tmp,在两个文件里都包含它,表示包含了两次,C语言规定如果没有限定为局部变量,则各个文件都可以调用,这就导致你声明了两个名称相同的同类型变量,当然不行。
如果定义为局部变量,那么另一个文件就没办法用它了,或者这么说:两个文件各有一个tmp但不是同一个tmp,改变一个的值,另一个不变。
常用方法就是extend一下(方案1)。
顺便说一句,我从来没用过unsigned char类型,因为char类型本身就是非负的,可能是因为编译器的关系吧
Ⅳ 在C语言中,一个文件中定义的 全局变量,在另一个文件中能用吗
全局变量extern可以在其他源程序中使用;全局变量static只能在本程序中使用。
全局变量是使用相同的内存块在整个类中存储一个值。
全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。
(4)C语言一个变量多个文件使用扩展阅读:
使用注意
全局变量的存在主要有以下一些原因:
1、使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不应该算什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。
2、使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样也快不了多少。
3、对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。
4、当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。
5、还可以用extern在函数外对全局变量声明,使全局变量的作用域从声明处到文件的结束。
6、全局变量的优先度低于局部变量。
Ⅳ 怎样使C语言全局变量在多个文件中使用
extern 关键字
extern int i;这样就可以在其他文件中使用
在头文件中声明
a.h
extern int i;
在其他某个c文件中定义
int i =0;
其他要使用i变量的c源文件只需要include"a.h"就可以
Ⅵ 我刚学C语言 怎么样让一个变量到其他的文件也能用
用外部变量
例如:
在同一工程中的两个文件,a.c
b.c
在a.c中有如下定义:
int
i=889
;
则在b.c中可以这样做:
extern
int
i;
之后便可访问a.c中的i值。
Ⅶ c语言一个结构体如何在多个源文件里面调用
引用结构体有引用类型,和引用全局变量两种方式。
1、引用类型。
需要将结构体定义与头文件中(.h文件),然后在需要引用类型的源文件(.c)中,均引用该头文件,即可使用该类型。
2、引用全局变量。
要引用全局变量,需要先引用类型,之后在一个源文件中定义全局变量,在其它源文件中声明该全局变量,即可使用。
比如结构体为struct test, 定义全局变量为
struct test glabol_test;
在其它文件中,只需要
extern struct test globol_test;
即可在对应文件声明所在行之下进行调用。