gpt4 book ai didi

c - 如何使结构常量中的函数指针用于初始化常量数组?

转载 作者:太空狗 更新时间:2023-10-29 15:07:03 24 4
gpt4 key购买 nike

<分区>

我有以下包含函数指针的常量结构:

/* module1.h */

typedef struct my_struct my_struct_t;

struct my_struct
{
void (*funcPtr1)(void);
void (*funcPtr2)(void);
}

extern const my_struct_t myStruct1;



/* module1.c */

#include <module1.h>

static void func1(void)
{
// do something
}

static void func2(void)
{
// do something else
}

const my_struct_t myStruct1 = {
.funcPtr1 = &func1,
.funcPtr2 = &func2
}

到目前为止一切顺利!

现在我想创建一个上述结构的常量数组,并从该结构的实例分配函数指针:

/* module2.c */

#include <module1.h>

const my_struct_t arrayOfMyStruct[] = {
{ myStruct1.funcPtr1, myStruct1.funcPtr2 },
// ...
}

编译器抛出一个错误并指出,表达式 "myStruct1.funcPtr1""myStruct1.funcPtr2" 不是常量。
怎么了?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com