OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7022|回复: 9

结构体占位,里面的"[4]"是什么意思

[复制链接]

34

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
496
金钱
496
注册时间
2018-10-30
在线时间
160 小时
发表于 2022-6-15 13:42:18 | 显示全部楼层 |阅读模式


  其中[4]表示什么意思,怎么获取到4元素的编号
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

896

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4309
金钱
4309
注册时间
2019-9-4
在线时间
896 小时
发表于 2022-6-15 15:22:38 | 显示全部楼层
能拍到具体的代码看下吗,不知道你说的[4]是指的什么
回复 支持 反对

使用道具 举报

34

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
496
金钱
496
注册时间
2018-10-30
在线时间
160 小时
 楼主| 发表于 2022-6-15 17:59:22 | 显示全部楼层
A571157242 发表于 2022-6-15 15:22
能拍到具体的代码看下吗,不知道你说的[4]是指的什么

typedef enum {
        PORT2 = 2,                        /* RS485 port2 */
        PORT3,                                /* RS485 port3 */
        PORT4,                                /* RS485 port4 */
} SBUPORT;
typedef enum
{
    a1,
    a2,
}SUBTYPE ;
typedef struct {
        uint8_t exAlarmID                : 8;
        uint8_t exAlarmPort        : 2;
        uint8_t alarmCH                : 5;
        uint8_t alarmSW                : 1;
} alarm_cfg_t;
alarm_cfg_t uk;
typedef struct {
        uint8_t exAlarmID        ;
        uint8_t exAlarmPort        ;
        uint8_t alarmCH                ;
        uint8_t alarmSW                ;
} cb;
typedef struct {
        /* 采集子设备通用配置 */
        SUBTYPE          type;
        uint16_t         vendor;        /* 设备供应商, 0为默认设备 */
        SBUPORT          port;
        uint16_t         devID;
        alarm_cfg_t alarm;         /* 报警配置 */
       
        /* 采集子设备私有配置参数 */
        struct {
                uint16_t cfg[MAX_PRIVATE_PRARS];
        } priv;
} subdev_cfg_t;
subdev_cfg_t number[5]=
{
     {.type=1 },

  [4]={.type=2,1,PORT3,3,5},

};
回复 支持 反对

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3359
金钱
3359
注册时间
2011-11-10
在线时间
207 小时
发表于 2022-6-15 23:00:12 | 显示全部楼层
subdev_cfg_t number[5]是5个元素的结构体数组, [4]就是对该结构体数组的第4个结构体进行赋初值
回复 支持 反对

使用道具 举报

3

主题

805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3832
金钱
3832
注册时间
2017-3-7
在线时间
1671 小时
发表于 2022-6-16 08:25:24 | 显示全部楼层
这种写法真没见过,查了下,c99支持的数组初始化,指定位置初始化,[4]也就是数组第五个位置初始化
回复 支持 反对

使用道具 举报

2

主题

452

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4296
金钱
4296
注册时间
2018-5-14
在线时间
930 小时
发表于 2022-6-16 08:49:52 | 显示全部楼层
sr861126 发表于 2022-6-15 17:59
typedef enum {
        PORT2 = 2,                        /* RS485 port2 */
        PORT3,                                /* RS485 port3 */

结构体总共5个成员,给成员[4]单独赋初值。其他成员的type赋予1
回复 支持 反对

使用道具 举报

34

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
496
金钱
496
注册时间
2018-10-30
在线时间
160 小时
 楼主| 发表于 2022-6-20 10:27:14 | 显示全部楼层
a5820736 发表于 2022-6-16 08:25
这种写法真没见过,查了下,c99支持的数组初始化,指定位置初始化,[4]也就是数组第五个位置初始化

但是这个编号,可以打印出来
回复 支持 反对

使用道具 举报

34

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
496
金钱
496
注册时间
2018-10-30
在线时间
160 小时
 楼主| 发表于 2022-6-20 11:47:42 | 显示全部楼层
sr861126 发表于 2022-6-20 10:27
但是这个编号,可以打印出来

里面嵌套了链表,只要填进去元素,就有节点显示出来
回复 支持 反对

使用道具 举报

34

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
496
金钱
496
注册时间
2018-10-30
在线时间
160 小时
 楼主| 发表于 2022-6-21 09:10:40 | 显示全部楼层
姚先起 发表于 2022-6-16 08:49
结构体总共5个成员,给成员[4]单独赋初值。其他成员的type赋予1

这里面的位置,可以通过串口打印出来,不知道是什么原理
回复 支持 反对

使用道具 举报

3

主题

805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3832
金钱
3832
注册时间
2017-3-7
在线时间
1671 小时
发表于 2022-6-21 12:18:21 | 显示全部楼层
sr861126 发表于 2022-6-20 10:27
但是这个编号,可以打印出来

能打印不是很正常的吗?有什么问题。。。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 21:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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