我正在为嵌入式系统编写代码。编译器是 GCC 衍生产品。下面的代码是否正确?
void *voidPointer = 0;
int (*functionPointer)(int a);
int testFunction(int a)
{
return(a+1);
}
void registerFunction(void *pvFunctionAddress)
{
voidPointer = pvFunctionAddress;
}
main()
{
...
registerFunction(testFunction);
functionPointer = voidPointer;
x = functionPointer(17);
...
}
现在 x 的值应该是 18。编译器没有显示错误 - 但这是正确的吗?或者我们是否覆盖了堆栈上的一些内存。
谢谢。