Hi:
I want to build an array that contain the pointer of some function in our program.
a simulated example is as below
//claim two function int x(void); int y (void); main() { int *(p)(void)[2]={x,y} }
When I compling, such error message appeared" error , an array of function" Dose keil support the array that contain the poiint of the function?
why I want to do this? There is an array while the first element is about the total amounts of the function to be execute, and the subsequent element indicate the corrponding function which will be execute. For example:
int array-A[3]={2,0,1}; //this mean that there is 2 functions(function_0 and function_1) will be executed.
Because of this, I want to build an extra array thant contain the pointer of the function such as below array-B={function_0_pointer,function_1_pointer};
According to the element in array-B, I will execute the corresponding function directly.
Is this idea can be supported?
Thanks for your replying!
Jason.Liu
Such as: The 8051 chips have lousy stack support and the 8051 compilers hates to try to generate code if they both have to fight with the stack issues and with function pointers. A function pointer means that you are treating function calls as variables. And that makes it almost impossible for the compiler to keep track of what parts of the code that may call the functions.
Do think about dropping function pointers, or switch to a processor with a full general-purpose stack implementation. Talking about Keil, I would suggest an ARM.