我是在做当按下某按键之后,会把记忆卡中的档案复制到控制器上面
而档案有30多个。
以下是我程式架构
//按下某个按键后触发以下两行
{
int file = 1;
file1();
}
void file1 ()
{
//宣告了一串东西
if (档案存在)
{
//显示是否覆蓋
//然后跳到另一个onkeypress事件中去判断Y或N
}
else
{
//计算档案大小
//取得控制器剩余容量
if (剩余容量>档案大小)
{
//开始复制档案(这里宣告了一个char [10000]的字串和内部API)
file++; //用于计数现在执行到哪个程式
file2(); //呼叫另外一个函式 以确保已经有把第一支档案复制过去了
}
else
{
//跳出错误视窗
}
}
}
void file2()
{
//程式码和file1相同 只差在档名的部分,还后有三十几个如同这样的CODE
}
long onkeypress () // 这里是一个按键触发事件,用来判断是否覆蓋的部分
{
//宣告了一串东西
if (讯号 == yes)
{
switch (file)
{
case 1:
//计算档案大小
//取得控制器剩余容量
if (剩余容量>档案大小)
{
//开始复制档案(这里宣告了一个char [10000]的字串和内部API)
file++;
file2(); //呼叫另外一个函式 以确保已经有把第一支档案复制过 去了
}
else
{
//跳出错误视窗
}
break;
case 2:
//同上依此一直下去都是一样的code
break;
case n:
break;
}
}
else
{
switch (file)
{
case 1:
file++;
file2();
break;
case 2:
file++;
file3();
break;
case n: //依此类推
}
}
}
而因为他在判断是否要覆蓋的期间,程式码并没办法停止下来等待输入是否覆蓋,所以我
才用这种方式,先确定第一支档案已复制到控制器中才去呼叫下一支函式,可是这种方式
却发生了一个大问题,就是stack overflow,请问各位大大们是否有解决的方法,抑或是
更好的构思呢?