这个是可以的,比如有函数
fun1()
{}
fun2()
{
fun1();
}
fun3()
{
fun1();
fun2();
}
main()
{
fun3();
}
这样是完全可以的。
我的程序是KEIL编译的,如下
先申明
EXTRN
CODE
(_Send_CRC)
;Send_CRC是C中的函数,汇编中加了_
调用的时候
LCALL
_Send_CRC
如果要使用C中的变量,那么CODE变成相应的DATA,XDATA等
union
{
//这个是共用体,定义的这两个成员共用内存中的一块区域
uchar fc[2];
uint fi;
}frecy;//定义了一个共用体变量frecy,定义时要特别注意末尾的分号
//定义测频率的函数,返回数据类型为uint,C语言中无此数据类型,有可能是你用#define自定义的
uint freq(void)
{
ulint f;
TR0=1; //启动T0
TR1=1;
while(cnt<20);
cnt=0;
TR0=0;
TR1=0;
frecyfc[0]=TH1;//为共用体变量frecy中的成员数组赋值fc[0]是此数组的第一个元素
frecyfc[1]=TL1;//同上,fc[1]是此数组的第二个元素
f=frecyfi;//把frecyfi的值赋值给f变量,由于这里是共用体,所以frecyfi的值会是recyfc[0]、recyfc[1]的组合,具体是怎样的,得要看uchar、uint数据类型占用内存字节的情况
TH0=-(46802/256);//除法运算后取相反数
TL0=-(46802%256);//未余运算后取相反数
TH1=0x00;//赋值 *** 作,0x00是十六进制数
TL1=0x00;
return f;//返回值
}
//如还有疑问可以给我留言,发详细的完整代码我们来讨论
1、子程序不用写main函数。
2、每个程序只有一个main函数。(如果在类里看到了main函数那个不是通常意义上的main函数。只是一个名字叫做main的自定函数)。main函数会接受系统传入的参数。参数是固定的。(但是类里如果见到main函数,肯定是自己定义的参数)。
以上就是关于在c语言中·子程序可以调用其他子程序么全部的内容,包括:在c语言中·子程序可以调用其他子程序么、51单片机中汇编语言如何调用C的子程序、求解这个C语言子程序什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)