加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C中奇怪的结构声明方法

发布时间:2020-12-16 09:55:48 所属栏目:百科 来源:网络整理
导读:这是来自CSR8670蓝牙芯片库函数的头文件 typedef struct TaskData { void (*handler)(Task,MessageId,Message); } TaskData; 这是什么样的结构声明?这个结构的成员数据是什么? 这是上下文的完整头文件: /* This file was automatically generated from sy
这是来自CSR8670蓝牙芯片库函数的头文件

typedef struct TaskData { void (*handler)(Task,MessageId,Message); } TaskData;

这是什么样的结构声明?这个结构的成员数据是什么?
这是上下文的完整头文件:

/* This file was automatically generated from syscalls.in 17.2 */

#ifndef __MESSAGE__H

#define __MESSAGE__H

#include <csrtypes.h>
/*! @file message_.h @brief Message types */
/*!
Message identifier type.
*/
typedef uint16 MessageId;
/*!
Message delay type.
*/
typedef uint32 Delay;
/*!
Message type.
*/
typedef const void *Message;
/*!
Task type.
*/
typedef struct TaskData *Task;
/*!
TaskData type.
*/
typedef struct TaskData { void (*handler)(Task,Message); } TaskData;

#endif

我仍然不确定*处理程序的含义.我无法在其他头文件中找到对handler的任何其他引用.如果相关,则Task表示在固件上运行的一种例程,该例程接受并处理固件可能从外部源接收的消息(例如,尝试连接到CSR板的蓝牙设备).

解决方法

struct TaskData只有一个成员,它是一个函数指针

void (*handler)(Task,Message);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读