怎么让两个函数轮流执行自身的语句

如何让两个函数轮流执行自身的语句
#include <stdio.h>
//有如下两个函数
//先执行test1,执行到第一条语句"int i;"接着去执行
//test2第一条语句,又返回到test1执行第二条语句,
//依此类推。即是让两个函数轮流执行自身的语句。
//如何实现。谢谢!! 
void test1(void){
int i;
for(i=0; i<32768; i++)
printf("i=%d\n",i);
}

void test2(void){
int j;
for(j=0; j<32768; j++)
printf("j=%d\n",j);
}

int main(int argc, char *argv[])
{
test1();
test2(); 
return 0;
}

------解决方案--------------------
我也想知道...
------解决方案--------------------
void test1(void){ 
int i; 
for(i=0; i <32768; i++) 
printf("i=%d\n",i);
test2();


void test2(void){ 
int j; 
for(j=0; j <32768; j++) 
printf("j=%d\n",j); 
test1(); 



int main(int argc, char *argv[]) 

test1();
return 0; 
}
------解决方案--------------------
基本没有什么办法做到。在什么情况下需要这么奇怪的需求?如果真要交替,你还不如把两个函数合并在一起呢

------解决方案--------------------
正如1楼所言,单线程无法实现。

另外想请教楼主,
楼主为什么会有这样的需求,
究竟是要满足什么问题?
达到什么效果?
------解决方案--------------------
单线程其实可以用加强版的goto: setjmp和longjmp函数。
就像汇编里的ljmp一样跳来跳去
------解决方案--------------------
楼主可以看一下多线程的资料

这涉及到线程间通信问题
线程间通信的两大关键:同步与互斥

你说的应该就是同步问题了

这个要看你用的是什么操作系统了

比如vxworks,我用的这个
有一个 同步信号量 可以简单的实现线程间的同步配合

但是一般来说
让2个线程轮流执行1条语句意义不大
而且,1条语句的概念太过于模糊
因为1条语句可能表示N条机器指令
------解决方案--------------------
C/C++ code

#include <stdio.h> 
#include <setjmp.h>
//有如下两个函数 
//先执行test1,执行到第一条语句"int i;"接着去执行 
//test2第一条语句,又返回到test1执行第二条语句, 
//依此类推。即是让两个函数轮流执行自身的语句。 
//如何实现。谢谢!! 

jmp_buf jmpbuf1, jmpbuf2;
void test1(void){ 
    int i; 
    for(i=0; i <10; i++)
    {
        if (setjmp(jmpbuf1) == 0)
        {
            return;
        }
        else
        {
            printf("i=%d\n", i);
            longjmp(jmpbuf2, 1);
        }
    }
} 

void test2(void){ 
    int j; 
    for(j=0; j <10; j++) 
    {
        if (setjmp(jmpbuf2) == 0)
        {
            longjmp(jmpbuf1, 1);
        }
        else
        {
            printf("j=%d\n", j);
        }
    }
} 

int main(int argc, char *argv[]) 
{ 
    test1(); 
    test2(); 
    return 0; 
}

------解决方案--------------------
不要随便的说单线程无法做到这,无法做到那,在汇编层都有的sjmp和ljmp,在高级语言一样能够实现。虽然这是我们应该少用甚至不用的。

------解决方案--------------------
探讨
setjmp
longjmp
这两函数如何实现的?

------解决方案--------------------
探讨
听说传说中win的api可以实现多线程。
我的需求就是传说中win的那个api是如何实现多线程的。
需求紧紧是好奇或是研究。因为写程序已经很郁闷常常
使用已经做好的api,class....等等...
希望各路英雄指条路给小弟。。。
谢谢!

------解决方案--------------------
在我看来,对于单核机器来说,在CPU层面所有的应用都是单线程的,只是操作系统帮助对我们的进程和线程进行调度。
------解决方案--------------------
单核机器也有多线程的,例如硬盘操作可以不需要CPU一直参与,显卡绘图也是
------解决方案--------------------