void fun1(int x)
{
display(x);
display(x+1);
display(2*x);
}
void fun2(int x)
{
display(x*3);
display(x+3);
display(x-1);
}
void fun3(int x)
{
display(x+2);
display(x+5);
}
.
.
.
.
function_ptr[]={fun1,fun2,fun3,.......fun20};
int st=0;// to indicate the function count
int main()
{
GLCD_init();
//comment here
}
评论为
在GLCD初始化之后我必须调用上面的函数。所以,现在我的问题是......采取条件..如果st = 3那么我必须执行fun2,fun3,fun4,fun5 ..带条件语句我可以..但在st值的帮助下,我直接调用这些函数..因为我正在使用汇编语言,以便我们可以直接将我们的函数地址提供给PC ...这里我遇到了传递参数的问题。我们通过向PC提供该特定功能的基地址来调用函数...如何将参数传递给那些函数以及直接调用...
答案 0 :(得分:1)
这完全取决于你的系统:有些系统只传递参数寄存器,有些是堆栈,有些是混合(例如regs中只有小值或第一个值)。
如果您不确定系统如何处理它,只需将过程调用解组为您的某个函数,看看它是如何完成的。