子程序的执行至少包含调用及返回两个步骤。通过执行子程哗闹雀序调用指令,CPU会自动地保存当前程序断点(程序被打断的地方),然后转向执行被调用的子程序;当子程序执行完毕后,通弯桥过执行子程序返回指令使CPU返回断点处继续执行指令。
例:
#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”)
}
}
两种方法:第一,通过传参数虚指前。参数在子程序里被修改的话,主程序的值也相应改掉(当然传值方法除外)。第二,子程逗吵序差清设置返回值,private
sub()
as
string
{
sub="ABCD"
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)