当前位置:首页 » 编程语言 » c语言如何调用变量
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言如何调用变量

发布时间: 2023-01-14 04:12:16

c语言里如何调用汇编里的变量

语言混编一般是模块化的,模块之间相对独立的,不能直接调用,必须遵循一定的约定,才能将模块融合为一体;各种编程语言的共通点就是代码编译后最终都成为机器代码,当然也可以用汇编语言作为中间代码,再由汇编代码编译成机器代码;比如说C语言写成dll形式,另的语言调用dll来完成代码共用。要在c语言里调用汇编里的变量,首先要理解汇编里的变量是如何存放的,因为C语言的实现又跟操作系统有关,所以又必须理解C语言在这个系统里是如何实现的。用汇编语言写个call,c语言里按照这个call约定调用这个call,就可以调用call里面的变量了。

⑵ 如何在一个.c文件里调用另一个.c文件里的变量

变量要定义为全局变量,就是要在函数体外面定义变量,同时不能加关键字static静态的,静态全局变量只能在本文件内使用,你先在一个文件中定义变量,比如:
#include

int
a;
int
main()
{
}
在另外的文件中,如果你想要使用变量a,那么首先要extren
int
a;extren关键字的意思是到其他文件中寻找,这样你就可以在其他文件中使用变量a了,注意全局变量会自动初始化为0,如果你不初始化,同时全局变量的值会保存到静态存储区直到整个程序运行结束的

⑶ c语言结构体变量怎么使用

结构体变量简称为结构变量,它由结构类型定义,有三种定义方法。下面以定义结构类型 book 和结构变量mybook 、 storybook 为例说明之。
1. 先定义结构类型,再定义结构变量。
struct book /* 定义结构体类型 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} ;
struct book mybook, storybook;
用这种方法定义结构变量,是最常用的方法,但须注意不能省略关键字“ struct ”。还可以在定义结构变量的同时给它的成员赋初值。如:
struct book /* 定义结构体类型 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} ;
struct book mybook = { “maths”, 24.7, “ 电子社 ”, “zhao” }, storybook;
则, mybook 变量的 price = 24.7 。
2. 定义结构类型的同时定义结构变量。
struct book /* 定义结构体类型 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} struct book mybook, storybook;
3. 不定义结构类型,直接定义结构变量。
struct /* 不定义结构类型名 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} struct book mybook, storybook;
需要说明的是,当某结构类型的成员又是另外一个结构类型时,称嵌套定义,其定义方法如下:
struct brith_date
{
int month ;
int day ;
int year ;
} ;
struct
{
char name[10] ;
char address[30];
char tel[12];
int age;
struct data birthday;
char sex[3];
} student_01 , employee ;
此例直接定义了 student_01 和 employee 两个变量,但是没有定义此结构体的名字,因此不能再定义与student_01 和 employee 同类的其它结构变量了!如下行定义是错误的:
truct boy, girl;

⑷ c语言 如何调用另一函数变量

局部变量是不能在函数之间相互调用的,你要是一定要做,可以用extern进行声明。
有一个简单的方法,就是把temp定义成全局变量就行了。
int temp;
void main(void)
{ int a=0,b=1;
for (;b<11;b++)
{ temp=b;
b=a+b;
a=temp;
}
void NEED (void)
{ int c,d;
d= temp;
}

⑸ 关于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语言如何定义函数,函数中要调用其他变量!

a为main函数中的局部变量,在函数zjsx中是不可见的,应该以入参的形式把a传入zjsx中。

void zjsx(int a);


int main()

{

int a=0;

zjsx(a);

return 0;

}

void zjsx(int a)


{

printf("a的值为%d ",a);

}

⑺ C语言里, 一个函数怎调用,另一个函数的变量(不用返回)

已经有人给你那么多方法了。。。我还是建议不要用extern去使全局变量,也不要把变量定义在头文件,然后用include把变量包含进其它源文件使用,不要这样做!这是菜鸟的做法!正确的做法是这样的,你把变量定义在相应的源文件中,定义成全局的,然后写一个接口去读取,充分利用封装的思想!我举个例子哈:加入你的变量名是A,定义在abc.c中。。。这时候你的正确做法是在abc.c中写一个函数,命名为intGetAValue(void){returnA;}这才是大神的做法!这样的话如果是在同一个源文件中,可以直接访问全局变量达到目的。如果是在不同的源文件的其它函数,就调用你写好的GetAValue()函数去读取!

⑻ c语言如何在一个cpp中使用另一个cpp的变量

第一、要想跨文件使用同一个变量,该变量必须定义成全局变量第二、在另外的文件引用文件外的全局变量,引用者必须用extern来声明变量。第三、必须在函数中去操作该变量如:1.cpp:void func() ;int n ;int main(){ n=1; func() ; return 0;}2.cpp#include <iostream>extern int n;void func(){ std::cout << "n="<<n <<std::endl ;}

⑼ C语言 过程中调用主函数变量

可以的,但最好提供长度参数,并且不要用0判断是否有效数字(因为0本身可能就是有效数字)
#include <stdio.h>
#include <malloc.h>
#include <memory.h>
int f(int* a,int l,int n,int i) //a:源数组 l:a有效数字长度,n:插入的数字,i,位置
{
int *b=(int*)malloc(sizeof(int)*(l-i-1)); //临时数组b
memcpy(b,a+i,(l-i-1)*sizeof(int)); //把&a[i]开始的数据复制到b;
a[i]=n;
memcpy(a+i+1,b,(l-i-1)*sizeof(int));//复制回来
free(b);
return 0;
}

int main()
{
int a[9]={1,2,3,4,5};
int i;
f(a,6,8,2); //可以用各种办法获得第二个参数,或者直接就给数组的总长度
for(i=0;i<6;i++)
{
printf("%d ",a[i]);
}
return 0;
}

⑽ C语言变量的定义与使用

变量的存储类别决定了变量中的数据在计算机内存中的存储位置。C语言中局部变量存放在动态存储区,全局变量或者静态变量存放在静态存储区。下面是关于C语言变量的定义与使用,欢迎参考!

如果要为单片机控制系统编写出高质量的C语言程序,合理的定义并使用变量是非常重要的。程序是用来处理数据的,而变量就是用来存储数据的。每定义一个变量,编译器就会在系统的RAM中分配一个物理存储区域。在单片机控制系统中,RAM资源是非常有限的,作为单片机程序员,绝对不能随意的定义变量,需要精打细算合理定义。为了实现这个目标,必须要对变量的多个特性有深刻的认识。

变量特性:

第一、变量定义要选择恰到好处的类型,变量的类型直接决定了它所存储的数据取值范围,这类似于我们生活中使用的各种容器,选择合适的变量类型,不但能保证数据存储安全,还能有效的节约系统资源;

第二、变量的作用范围必须清楚,C语言最基本的功能单元是函数,在函数内部使用的变量是私有变量,只能在函数内部使用。多个函数组成一个程序的功能模块,并安置在某一个C文件中,在这些函数的头部定义的变量是静态变量(局部变量),这种类型的变量模块内部的函数都可以访问。如果在模块内部声明变量,并在该模块的头文件中导出,该类型变量就是全局变量,全局变量在整个工程中的所有函数都可以访问;

第三、变量占用的RAM资源,私有变量是可以释放的,静态变量与全局变量是不可以释放的。也就是说在程序运行的整个过程中,私有变量占用资源可以供不同的函数重复利用,而静态变量与全局变量是完全被占用不能重复利用的;

第四、变量可以存放常数,但因为单片机RAM资源有限,强烈建议不要用变量存放常量,而是在资源相对丰富的FlashROM中存放常量;

第五、局部变量与全局变量对于函数来说,访问非常方便,但缺点显而易见:访问的函数越多,数据的安全性越低,一旦出现数据异常,很难排除问题。所以,请尽量减少局部变量与全局变量的使用;

第六、函数的型参个数尽量减少,这样型参只会占用通用寄存器组来完成参数传递工作。如果参数过多,编译器可能会被迫分配占用RAM资源,这样不但参数传递效率变低,同时还会导致RAM资源浪费;

明确上述变量定义与使用特点后,在编写程序的时候,一定要利用好这些特性并结合程序的特点,灵活的使用各种类型、各种作用范围的变量,使程序在最大限度上得到优化,使系统性能提升至最优的状态,才是我们嵌入式开发者的终极目标!

拓展:C语言入门学习

什么人需要学习C语言?

从51JOB的统计数据来看,选择C语言人才的企业多数以电子工程师、嵌入式工程师、硬件工程师、IOS工程师等为主,学历本科以上相关专业,三年以上工作经验,且外语水平要求至少四级以上。既然C语言学习者的就业门槛那么高,为什么还有很多人执着的去学习C语言呢?总结而言,无外乎以下几点原由:

1)C语言不是面向对象语言。

因为这一点,任何学习C语言的人必须学会用函数思考问题。当你真正的去学习一门面向对象语言时,就会有C语言的函数学习基础去对比。这会使学习面向对象编程更容易理解和更有乐趣。

2)用C编程就像进行智力体操。

你要顾及到每一件事情,而这在很多其他语言中他会为你处理。你要管理指针,内存分配,和内存回收。你要明白如何处理串,还有动态数据。在其他语言中,所有这些对你来说是隐藏的。你不知道他们如何运行,更不用说改变他们的运行方式了。你得到了使用的便利,失却了对程序的控制和速度。很多情况下,这是笔值得的买卖。其他的情况下就不是这样了。

3)不同情况下你会使用不同的编程语言。

某些情况下要求使用Lisp,其他的要Java,还有别的要C++。但是C是你坚实的基础。你可能不会使用它做一些项目,但是它会帮助提高你的能力,熟练的用其他语言编程。

4)除了汇编语言之外,C代码生成的程序比其他任何语言生成的程序来得更小和运行更快。

那么为什么不学汇编语言呢?汇编是一门学了很有用的.语言,但是它没有C那样的可移植性,并且其他流行的语言比如JAVA的语法是基于C的,而不是汇编。你仍然应该学汇编,但它并不会证明它会像学C那样有用。

5)如果你想要写一个视频游戏引擎或操作系统,你会需要C。

你不能使用C#, Java, 或 Basic来完成这些编程任务。

C语言的发展史:

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

我适合学习C语言吗?

首先我们要认清一个事实:C语言工作者只是众多从事软件开发者中的一小部分,在深圳这样一个IT企业云集的大城市,使用其它语言从事软件开发的工作者多如牛毛,薪资待遇不比从事C语言开发的人低,当编程爱好者在选择第一个编程语言时,C语言不一定是首先。我适合学习C语言吗?解决这个问题,先回答以下几个问题:

1)你学习C语言的目的是什么?如果是想从事这方面的工作,那么请义无反顾的坚持下去,推荐你在《微机原理》、《计算机组成原理》和《计算机系统结构》三本书中选一本配合《C语言程序设计》来看,这样可以融汇贯通,让你对编程有更深入更系统化的理解。而这种理解对计算机类学科的学习来说很重要。

2)您具备学习C语言的条件吗?由于入职C语言编程的企业对入职者的要求比较高,在没有编程工作经验前提下多数想通过自学进入类似企业的人几乎为零,包括很多计算机专业毕业的大、中专毕业生在校期间都会学到C语言,毕业出来后依然云里雾里。C语言的开发,需要在实际工作中才能快速掌握。同时,英语(从事C语言开发需要经常查阅英文资料,尤其是单片机领域)、学历、数学算法、极强的逻辑思维能力等等也是让多数人望而却步的门槛。