
正文
c语言调用另一个文件中的变量,c语言调用其他文件的函数怎么编译
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言局部变量可以被其他的原文件引用吗
1、你在hal.h中声明了tmp,在两个文件里都包含它,表示包含了两次,C语言规定如果没有限定为局部变量,则各个文件都可以调用,这就导致你声明了两个名称相同的同类型变量,当然不行。
2、静态外部变量只限于本文件范围内有效,不能被其他文件引用。静态局部变量只能被定义变量所在的函数引用,且每次调用此函数结束时静态局部变量值保留,作为下次调用此函数时该变量的初值。
3、首先要想跨文件使用同一个变量,该变量必须定义成全局变量。其次在另外的文件引用文件外的全局变量,引用者必须用extern来声明变量。最后必须在函数中去操作该变量即可。
4、C语言中是可以引用另外一个源文件的全局数组的,但是不能引用局部数组。引用方式举例如下:设a.c文件有有数据定义 int array1[10];现有b.c文件中想访问a.c中的array1数组 那么b.c文件中首先添加如下语句 extern int array1[10];然后就可以访问数组array1和它的元素了。
相关问答
Q1: C语言中如何用一个程序调用另一个程序,两个程序都是.c文件。
第一种方法的话,无论你用什么工具都是在你的程序里面添加你要调用函数的函数声明,然后再编译之后把两个obj文件连接起来。或者是把你要调用函数作到一个lib文件里面,然后连接到这个库。
看你的执行顺序应该是分别执行两个 .c 文件。就是两个独立的进程。每个进程有相互独立的虚拟地址空间。你所得到的40059c是另一个进程的函数地址。 在exploit中的40059这个地址是非法使用的。要想在一个进程中使用另一个进程的函数,就必须要用进程间通信。如共享内存,注册函数,共用此函数。
要得到其他程序的执行的结果,要用spawn***()这个家族的函数。如果在linux下面 如果你想得到那个返回值可以调用WEXITSTATUS(status),其中status是system函数的返回值。如果你非常想获取他的返回值,就使用popen函数。它返回一个FILE*,就好像读写文件一样操作它就是了,不需要另外写文件读文件。
Q2: 关于C语言中变量在两个.C文件中的调用问题
首先要想跨文件使用同一个变量,该变量必须定义成全局变量。其次在另外的文件引用文件外的全局变量,引用者必须用extern来声明变量。最后必须在函数中去操作该变量即可。
直接用变量名访问是不行的,要通过函数调用来读写。例如:假设c文件里有静态变量static int a; 如果c文件想要读写a,就必须在c文件里添加读写a的外部函数。
全局变量extern可以在其他源程序中使用;全局变量static只能在本程序中使用。全局变量是使用相同的内存块在整个类中存储一个值。全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。
/* B.c调用A.c里的foo() / //===A.h=== void foo();//===A.c=== include A.hvoid foo() { } //===B.c=== include A.hint main() { foo();} 或者直接在B.c头部加上声明void foo();也行。
Q3: c语言工程里其它文件引用全局变量?
全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。
能。因为全局变量默认是extern的,函数也是。
)、extern用在变量声明中常常有这样一个作用,你在*.c文件中声明了一个全局的变量,这个全局的变量如果要被引用,就放在*.h中并用extern来声明。
c文件之间是可以相互引用的,就像函数一样可以被相互引用。
extern就可以。在一个文件里定义:bdata m;sbit x=m^1;然后在另一个文件里声明:extern bdata m;(如果不使用m可以不声明。)extern bit x;这样就可以使用了。如果变量较多,建议楼上的方法,用全局头文件。
Q4: C语言如何在.c文件中调用另一个.c文件中的字符数组(2个.c文件不在同一...
C语言中是可以引用另外一个源文件的全局数组的,但是不能引用局部数组。引用方式举例如下:设a.c文件有有数据定义 int array1[10];现有b.c文件中想访问a.c中的array1数组 那么b.c文件中首先添加如下语句 extern int array1[10];然后就可以访问数组array1和它的元素了。
或者直接在B.c头部加上声明void foo();也行。
在c文件中使用extern char student_name[N][20];声明外部变量 或者将全局变量的定义写在头文件b.h中,然后在c中#include b.h。
function.hvoid func(){ // do something}这样一来,我们想要在另外一个文件,也就是main.c 中调用这个函数的时候,只需要包含它对应的头文件,就可以直接调用了。
方案1:在一个文件中定义全局变量“类型 tmp;”,注意是全局变量。另一个文件全局变量的位置使用“extend 类型 tmp;”。方案2:把hal.c文件里的函数参数加一个指向tmp的指针,tmp在main中,在hal.c里的文件使用tmp时,把地址传过去就行了。
关于c语言调用另一个文件中的变量和c语言调用其他文件的函数怎么编译的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







