找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1138|回复: 8
打印 上一主题 下一主题
收起左侧

C语言结构体赋值问题

[复制链接]
跳转到指定楼层
楼主
ID:939553 发表于 2023-10-4 13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
typedef struct _MENU_INFO_TYPE
{
        uint8_t *menu_name;
        void (*fn)(void);
}MENU_INFO_TYPE;

typedef struct
{
        uint16_t totle;
        MENU_INFO_TYPE menu_info[2];
}MENU_INFO_TYPE1;

MENU_INFO_TYPE1  xdata new_menu =
{
        2,{"123",fn1},{"456",fn2}
};

提示:main.c(91): error C242: 'struct': too many initializers
请教怎么才能正确赋值?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-10-4 17:23 | 只看该作者
写法貌似没有问题,只是编译器不支持,本来C51就不是标准C语言。
回复

使用道具 举报

板凳
ID:771630 发表于 2023-10-4 18:38 | 只看该作者
无法批量赋值的话就一个个单独赋值吧
回复

使用道具 举报

地板
ID:275826 发表于 2023-10-4 19:16 | 只看该作者
改成  MENU_INFO_TYPE1  xdata new_menu = {  2,{{"123",fn1},{"456",fn2}} };
回复

使用道具 举报

5#
ID:1094811 发表于 2023-10-4 19:48 来自手机 | 只看该作者
typedef struct {         uint8_t *menu_name;         void (*fn)(void); }MENU_INFO_TYPE;
回复

使用道具 举报

6#
ID:939553 发表于 2023-10-4 21:45 | 只看该作者
tyrl800 发表于 2023-10-4 19:16
改成  MENU_INFO_TYPE1  xdata new_menu = {  2,{{"123",fn1},{"456",fn2}} };

这样可以的,谢谢分享。请教是什么原因啊?
回复

使用道具 举报

7#
ID:939553 发表于 2023-10-4 21:46 | 只看该作者
XLinliY.Zhang 发表于 2023-10-4 18:38
无法批量赋值的话就一个个单独赋值吧

谢谢回复。单独赋值是可以的,或通过指针也是可以的
回复

使用道具 举报

8#
ID:1059989 发表于 2023-10-5 09:48 | 只看该作者
jxcrgt35 发表于 2023-10-4 21:45
这样可以的,谢谢分享。请教是什么原因啊?

代回复:
因为menu_info数组对于MENU_INFO_TYPE1算是1个成员,所以MENU_INFO_TYPE1结构里包含的是2个成员。
回复

使用道具 举报

9#
ID:939553 发表于 2023-10-23 22:45 | 只看该作者
FrankJi 发表于 2023-10-5 09:48
代回复:
因为menu_info数组对于MENU_INFO_TYPE1算是1个成员,所以MENU_INFO_TYPE1结构里包含的是2个成 ...

谢谢,受教啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表