
比如以下实例:
#include <iostream>
void A()
{};
void a()
{
cout>>"a">>endl
};
void b()
{
a()//,a函数定要先于b函数声明
}
void main()
{
A();
a();
b();
}
运行这个程序,结果为
a
a
说明a()运行了两次。一次自身调用,还有一次是通过b()函数实现的。C语言也是同样的。
因此C/C++ 中子程序(子函数)能相互调用。
不用声明调用时直接用 跳转指令 如 SJMP AJMP LJMP等后接子程序标号就行。子程序最后加 RET返回
例
SJMP REL1
。。。。。
REL1: PUSH ACC
PUSH SPH
。。。。
RET
例:
#include<stdio.h>
intsushu(intx)
{inti
for(i=2i<xi++)
if(x%i==0)break
if(i==x)return1
elsereturn0
}
main()
{inti,n=0
for(i=2i<=1000i++)
if(sushu(i)==1)n++:
printf("n=%d",n)
}
扩展资料
使用vfork()新建子进程,然后调用exec函数族
#include<unistd.h>
main()
{
char*argv[]={“ls”,”-al”,”/etc/passwd”,(char*)}
if(vfork()==0)
{
execv(“/bin/ls”,argv)
}else{
printf(“Thisistheparentprocess\n”)
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)