这个想法有点像Windows的回调函数:就是譬如我的程序A——Function里面调用了B_Function,用户想自己修改B——Function,我觉得就会出现我上面的疑问?
C51的子函数里,会使用RAM来保持临时变量,这点可以从工程文件里.M51里查看。譬如:A_Funtion{
int i,j ,k;
i =B_funtion()
}
B_Funtion(void)
{
int m,n,l.
}
以前是B函数是加密函数,AB函数都由我设计,交给用户,那个时候,函数变量都由C51编译器统一分配。现在问题有两个:1)B函数交个用户设计,那样用户用自己的加密算法。我只给用户A函数。所以,用户自己编写B函数时候,他不知道我的.M51文件,自然也不知道我使用了那些地址做变量存储,编译器如何为B函数分配变量地址,才不至于和A函数使用的地址发生冲突。譬如:A函数的i和B函数的m就有可能用同一地址。2)如果用户自己设计B函数,他是烧录Hex文件吧,但是他设计的只是一个子函数而已,按照C51应该生成LiB文件,所以如何将他生成的代码分离出来,如何烧录呢?