c - 在 C 中创建函数指针结构时从未完成的类型错误

标签 c function pointers struct

我正在尝试创建一个包含多个函数指针的结构,但是当我尝试创建该结构的实例时出现错误“变量“stCmdTable”被声明为从未完成的类型”.

我有一个头文件,其中包含以下代码:

typedef int (*pStCmd) (void);

struct stCmdStruc {
  pStCmd id;
  pStCmd measure;
  pStCmd setRelay;
};

typedef struct stCmdStruct stCmdStruct;

stCmdStruct stCmdTable;

我想创建 stCmdTable 并将函数分配给 stCmdTable 中的所有函数指针,但是当它不喜欢我的 stCmdTable 声明时。

我也试过做这样的事情,我尝试用我的结构定义初始化所有函数指针到 bat 的函数,但它真的不喜欢这样告诉我 expected a "; " 在结构中每一行的末尾。

typedef int (*pStCmd) (void);

struct stCmdStruc {
  pStCmd id = sendId2;
  pStCmd measure = sendMeasurement2;
  pStCmd setRelay = setRelay2;
};

typedef struct stCmdStruct stCmdStruct;

stCmdStruct stCmdTable;

任何人都可以阐明我做错了什么吗?

最佳答案

试试这个。 . .

typedef int (*pStCmd_Type) (void);

typedef struct _stCmdStruct {
  pStCmd_Type id;
  pStCmd_Type measure;
  pStCmd_Type setRelay;
} stCmdStruct_Type;

stCmdStruct_Type stCmdTable[your_table_size];

stCmdTable[0].id = sendId2;
stCmdTable[0].measure = sendMeasurement2;
stCmdTable[0].setRelay = setRelay2;

关于c - 在 C 中创建函数指针结构时从未完成的类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53062934/

相关文章:

c - 自制内核中的三重故障

c - 如何设置我的代码/VS10 以识别 .c 文件中的 CUDA 函数调用?

html - 是否可以将函数内部循环中的变量值获取到全局变量中?

c - 字符串作为c函数中的参数

python - 如何在 Cython 中使用内联函数

C 从整数中提取奇数位

c - 如何检查用户是否登录到工作站,或者工作站是否被锁定?

c - 在预处理器中定义可变参数函数 #define

c - C中的动态数组和指针

c - 分配指针时,memcpy 和只是分配有什么区别?