结构体的声明和赋值问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

结构体的声明和赋值问题

2017-05-03 16:54:49 2865 1

--------------------------------第一个结构体定义----------------------------------------------------------
/*

  • 消息处理回调函数数据结构
    */

typedef struct MessageData
{

MQTTMessage* message;   //mqtt消息结构体
MQTTString* topicName;  //订阅的主题topic

}MessageData;
--------------------------------第二个结构体定义----------------------------------------------------------
/*

  • 订阅主题对应的消息处理结构
    */

typedef struct MessageHandlers
{

const char* topicFilter;      //pub消息对应的主题
void (*fp) (MessageData*);    //pub消息处理函数

}MessageHandlers;
--------------------------------在函数内定义使用时----------------------------------------------------------
MessageHandlers handler = {topicFilter,NULL};
此时编译是错误的,用的是MDK5.
有没有别的写法可以完美的定义并且赋值。
错误提示为附件图片。F_U_1KG9KNBRZ4B_PVXX_1D

取消 提交回答
全部回答(1)
  • 被纵养的懒猫
    2019-10-15 16:39:28

    C99标准出来以前,C语言不支持动态定义数组大小,只能采用动态分配指针方式来完成动态数组的个数定义。如: struct st { int x,y; char str[10]; }; struct st array ; int n; printf("input n: "); scanf("%d", &n); array=(struct st)malloc(n*sizeof(struct st)); //动态分配n个结构体空间,接下来array的操作,与数组操作是相同的,如:array[0].x=1 ; C99以后,C语言标准开始支持动态定义数组,但动态数组,在其确定个数之后,在其生命期中,就不可变了。如: struct st { int x,y; char str[10]; }; int n; printf("input n: "); scanf("%d", &n); struct st array[n] ; //定义动态数组 array[0].x=1 ;

    0 0
相关问答

1

回答

变量未声明指什么?

2022-05-31 08:44:46 274浏览量 回答数 1

1

回答

数组的结构形式有什么?

2022-03-31 21:51:24 168浏览量 回答数 1

1

回答

结构体的优点是什么?

2022-03-29 22:12:00 198浏览量 回答数 1

1

回答

MCI里的MCI结构体有什么用?

2020-05-28 13:30:21 609浏览量 回答数 1

1

回答

声明int数组

2020-02-09 13:26:35 309浏览量 回答数 1

1

回答

声明一个变量,为它赋值,然后显示出来

2020-02-13 11:45:49 544浏览量 回答数 1

1

回答

声明对象数组

2020-02-08 19:17:07 248浏览量 回答数 1

1

回答

在TypeScript中声明一个数组

2020-02-08 14:13:24 318浏览量 回答数 1

1

回答

C#声明空字符串数组

2020-02-06 23:52:46 254浏览量 回答数 1

1

回答

c# c++ 之间网口通信 结构体 转换

2016-03-06 15:49:43 2442浏览量 回答数 1
文章
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载