在下面的代码中,我试图将函数指针分配给函数指针数组。我收到错误消息:
error:initializer element is not constant,然后附近的注释说“初始化stateTable2 [1]”。
在main中,我尝试将函数指针分配给另一个函数指针,没有问题。
error:initializer element is not constant,然后附近的注释说“初始化stateTable2 [1]”。
在main中,我尝试将函数指针分配给另一个函数指针,没有问题。
void function1 (void) // Function definition
{
}
void function2 (void) // Function definition
{
}
void (*fptr)(void) = function2;
void (*stateTable2[]) (void) = {function1,fptr};
int main()
{
void(*fp)(void) = fptr;
return 0;
}
fptr = function1;
。 - Mawg says reinstate Monicamain
函数中,您可以进行运行时初始化。与赋值一样,在此处您不需要常量表达式。对于具有静态持续时间的数据对象的初始化,您需要一个常量表达式。 - Gerhardhvoid (*stateTable2[]) (void) = {function1,fptr};
->void (*stateTable2[]) (void) = {function1, function2};
- Jabberwocky