OpenEdv-开源电子网

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

C 结构体初始化

[复制链接]

19

主题

45

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1379
金钱
1379
注册时间
2016-2-20
在线时间
336 小时
发表于 2018-11-27 21:52:10 | 显示全部楼层 |阅读模式
1金钱
因通信协议不确定,可能更改。现在程序中要取出命令字进行判断,不想在代码中充满USARTx_RX_BUF[5],想要代码便于更改和维护,
所以想到结构体。在com1.h中声明结构体
typedef struct {
        u8 u1c1;
        u8 u2c1;
        u8 u3c1;
        u8 u4c1;
        u8 u1c2;
        u8 u2c2;
        u8 u3c2;
        u8 u4c2;
}recvdef;

在com1.c中定义结构体
recvdef recvC=
{
        USART1_RX_BUF[5], //第一个命令字
        USART2_RX_BUF[5],
        USART3_RX_BUF[5],
        USART4_RX_BUF[5],
        USART1_RX_BUF[6], //第二个命令字
        USART2_RX_BUF[6],
        USART3_RX_BUF[6],
        USART4_RX_BUF[6]
};

USARTx_RX_BUF[5]是串口收到的数据位置,是第一个命令字
USARTx_RX_BUF[6]是串口收到的数据位置,是第二个命令字

USARTx_RX_BUF[5]和USARTx_RX_BUF[6]是在uart.c中定义的变量,在uart.h中声明
com1.c文件已包含uart.h头文件,
因为结构体成员初始化不能是变量;所以报错expression must have a constant value
除了#define,还有什么办法能解决这个问题?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-11-29 02:26:39 | 显示全部楼层
参考下别人的协议代码吧
回复

使用道具 举报

7

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
438
金钱
438
注册时间
2017-8-21
在线时间
76 小时
发表于 2018-11-29 08:35:10 | 显示全部楼层
=-=没必要这么麻烦。。。。你可以参考一下shell命令的写法
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-11-29 08:52:37 来自手机 | 显示全部楼层
C语言是怎么学的,C语言支持你这种写法吗?
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 08:55:37 | 显示全部楼层
本帖最后由 edmund1234 于 2018-11-29 09:03 编辑

recvdef recvC=(recvdef)
{
        USART1_RX_BUF[5], //第一个命令字
        USART2_RX_BUF[5],
        USART3_RX_BUF[5],
        USART4_RX_BUF[5],
        USART1_RX_BUF[6], //第二个命令字
        USART2_RX_BUF[6],
        USART3_RX_BUF[6],
        USART4_RX_BUF[6]
};
以编译器的智商它是猜不出你用一对大括号包着的是啥东东来的, 所以必须要告诉它这是什么
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 09:07:46 | 显示全部楼层
yklstudent 发表于 2018-11-29 08:52
C语言是怎么学的,C语言支持你这种写法吗?

支持。。。。
回复

使用道具 举报

4

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1194
金钱
1194
注册时间
2017-8-31
在线时间
295 小时
发表于 2018-11-29 09:22:25 | 显示全部楼层
edmund1234 发表于 2018-11-29 08:55
recvdef recvC=(recvdef)
{
        USART1_RX_BUF[5], //第一个命令字

你确定这样可以?什么原理?我放keil5里试还是会报错不是常量
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 09:28:47 | 显示全部楼层
本帖最后由 edmund1234 于 2018-11-29 09:35 编辑
一起哈皮 发表于 2018-11-29 09:22
你确定这样可以?什么原理?我放keil5里试还是会报错不是常量

我经常都这样用的, 把你试的代码贴出来看看
回复

使用道具 举报

4

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1194
金钱
1194
注册时间
2017-8-31
在线时间
295 小时
发表于 2018-11-29 09:39:37 | 显示全部楼层
edmund1234 发表于 2018-11-29 09:28
我经常都这样用的, 把你试的代码贴出来看看

你是不是在函数里这样定义并初始化的,函数里定义并初始化编译器会正确的取buff[5]数值填充。我定义全局buff,recvdef recvC=(recvdef){buff[5]}这样的是不行的,全局变量初始化编译器应该不允许常量以外的赋值
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 09:43:22 | 显示全部楼层
一起哈皮 发表于 2018-11-29 09:39
你是不是在函数里这样定义并初始化的,函数里定义并初始化编译器会正确的取buff[5]数值填充。我定义全局b ...

recvdef 有多少个成员, 你就要填充多少个数, 你只填一个数当然不行了
你就按样主的代码, 加上我给的, 就自然可以
回复

使用道具 举报

4

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1194
金钱
1194
注册时间
2017-8-31
在线时间
295 小时
发表于 2018-11-29 09:51:34 | 显示全部楼层
edmund1234 发表于 2018-11-29 09:43
recvdef 有多少个成员, 你就要填充多少个数, 你只填一个数当然不行了
你就按样主的代码, 加上我给的 ...

你看,x号就是提示不是常量的错误,说明你的方法不行

你看,x号就是提示不是常量的错误,说明你的方法不行

你看,x号就是提示不是常量的错误,说明你的方法不行
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 09:55:31 | 显示全部楼层
一起哈皮 发表于 2018-11-29 09:51
你看,x号就是提示不是常量的错误,说明你的方法不行

recvC = (recvdef) {
        buff[5],
        buff[5],
        buff[5],
        buff[5],
        buff[6],
        buff[6],
        buff[6],
        buff[6]
        };       

这一段你放在哪儿? 放在函数外而?
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 09:56:26 | 显示全部楼层
本帖最后由 edmund1234 于 2018-11-29 09:57 编辑

。。。。。。。。。。。。。。。。

Capture.PNG
回复

使用道具 举报

4

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1194
金钱
1194
注册时间
2017-8-31
在线时间
295 小时
发表于 2018-11-29 10:04:54 | 显示全部楼层
edmund1234 发表于 2018-11-29 09:56
。。。。。。。。。。。。。。。。

这不就是我9楼说的吗,就算你把那个(recvdef)去掉也没问题的,编译器先编译全局变量,函数内初始化就能定位到相应内存了
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 10:07:35 | 显示全部楼层
一起哈皮 发表于 2018-11-29 10:04
这不就是我9楼说的吗,就算你把那个(recvdef)去掉也没问题的,编译器先编译全局变量,函数内初始化就能定 ...

你去掉(recvdef)没问题? 呵呵
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 10:08:20 | 显示全部楼层
。。。。。。。。。。。。。去掉了是这个结果
Capture.PNG
回复

使用道具 举报

4

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1194
金钱
1194
注册时间
2017-8-31
在线时间
295 小时
发表于 2018-11-29 10:12:28 | 显示全部楼层
本帖最后由 一起哈皮 于 2018-11-29 10:14 编辑
edmund1234 发表于 2018-11-29 10:08
。。。。。。。。。。。。。去掉了是这个结果

汗,我们讨论的是变量初始化的时候的赋值,眼瞎才发现你是初始化完毕后的赋值,我从没看过这种加括号的写法比较好奇原理
回复

使用道具 举报

15

主题

184

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2014-4-29
在线时间
299 小时
发表于 2018-11-29 10:14:49 | 显示全部楼层
本帖最后由 xianshasaman 于 2018-11-29 10:19 编辑

这个和结构体没有关系,c语言里面所有变量都是这样。
一个静态变量或者全局变量初始化时的右值必须是一个在编译期能确定的常数,不能是内存里的变量。
比如
u8 test0 = 0;
u8 test1 = test0;
这样的基本类型的初始化一样会报错,并不是结构体引起的。

有一个例外是可以用只读型变量去初始化(虽然只读型变量并不是常数,但是只读型变量自己定义的时候一定会初始化成一个常数)
比如
const u8 test0 = 0;
u8 test1 = test0;
这么写就不报错。

这个问题你也可以自己测试一下,在keil5里也是这样,不要受吹牛的网友误导。
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 10:19:56 | 显示全部楼层
一起哈皮 发表于 2018-11-29 10:12
汗,我们讨论的是变量初始化的时候的赋值,眼瞎才发现你是初始化完毕后的赋值,我从没看过这种加括号的写 ...

我对一楼问题的理解刚好跟你相反, 如果它如你所想, 何必在H文件定义结构体, 而在C文任里赋值?为何不在头文件赋值?
他要在C文件赋值就自然是在函数里啊
如果我误会了楼主说的, 那就是我错了, 但是给结构体用这种方式赋值必须要加(recvdef), 否则就必然报错
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 10:27:05 | 显示全部楼层
xianshasaman 发表于 2018-11-29 10:14
这个和结构体没有关系,c语言里面所有变量都是这样。
一个静态变量或者全局变量初始化时的右值必须是一个 ...

请教这位不爱吹牛的网友, 这个报错是什么原因?
。。。。
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 10:27:25 | 显示全部楼层
本帖最后由 edmund1234 于 2018-11-29 10:28 编辑
xianshasaman 发表于 2018-11-29 10:14
这个和结构体没有关系,c语言里面所有变量都是这样。
一个静态变量或者全局变量初始化时的右值必须是一个 ...

请教这位不爱吹牛的网友, 这个报错是什么原因?你懂得这种赋值方法吗?用过吗?学过吗? 见过吗?
。。。。
Capture.PNG
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-11-29 10:38:55 | 显示全部楼层
本帖最后由 szczyb1314 于 2018-11-29 11:00 编辑

理解错误,请忽视
微信截图_20181129104018.jpg
回复

使用道具 举报

15

主题

184

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2014-4-29
在线时间
299 小时
发表于 2018-11-29 10:43:12 | 显示全部楼层
edmund1234 发表于 2018-11-29 10:27
请教这位不爱吹牛的网友, 这个报错是什么原因?你懂得这种赋值方法吗?用过吗?学过吗? 见过吗?
。。 ...

你自己看看楼主到底问的什么,你又在说什么,你要想分享自己的经验就单独发个帖子,或者你干脆说明白了你的理解和楼主报错的原因和你的建议,你要是不想给人解答就不要回答。
别人起码都在帮楼主解决问题,你这么杠别人有意思?
回复

使用道具 举报

20

主题

450

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4936
金钱
4936
注册时间
2017-7-6
在线时间
722 小时
发表于 2018-11-29 10:44:25 | 显示全部楼层
edmund1234 发表于 2018-11-29 10:27
请教这位不爱吹牛的网友, 这个报错是什么原因?你懂得这种赋值方法吗?用过吗?学过吗? 见过吗?
。。 ...

我还真用过,后面加[]这个就好了
1.jpg
我是小白,很白很白的小白!!!
回复

使用道具 举报

20

主题

450

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4936
金钱
4936
注册时间
2017-7-6
在线时间
722 小时
发表于 2018-11-29 10:46:15 | 显示全部楼层
xianshasaman 发表于 2018-11-29 10:43
你自己看看楼主到底问的什么,你又在说什么,你要想分享自己的经验就单独发个帖子,或者你干脆说明白了你 ...

都在讨论问题了 消消火   这个没必要后面加(recvdef)
我是小白,很白很白的小白!!!
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 11:34:13 | 显示全部楼层
本帖最后由 edmund1234 于 2018-11-29 11:45 编辑
xianshasaman 发表于 2018-11-29 10:43
你自己看看楼主到底问的什么,你又在说什么,你要想分享自己的经验就单独发个帖子,或者你干脆说明白了你 ...
咋了?不说吹牛了吗?我的问题回答不了吗?是吹过头了是吧
我前面就说了, 我可能误解楼主的意思, 但我没理解错你说吹牛的意思, 我就是想看看我到底吹了些啥牛,是我吹大了还是你的天空小的只有井口一般大小?呵呵


回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 11:37:13 | 显示全部楼层
程功之道 发表于 2018-11-29 10:44
我还真用过,后面加[]这个就好了

你的方法对比一下#16楼的, 看清楚是否一样
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 11:38:46 | 显示全部楼层
程功之道 发表于 2018-11-29 10:46
都在讨论问题了 消消火   这个没必要后面加(recvdef)

那你说说, #16楼和#21楼, 分别在哪儿, 为啥一个报错一个不报错
回复

使用道具 举报

15

主题

184

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2014-4-29
在线时间
299 小时
发表于 2018-11-29 11:42:56 | 显示全部楼层
程功之道 发表于 2018-11-29 10:46
都在讨论问题了 消消火   这个没必要后面加(recvdef)

不好意思啊,确实不该在论坛吵架。
其实道理我都懂,结构体的赋值有好几种方法,他那种强制转换是可读性最差的一种,而且维护相当麻烦,只能在特殊场合才能用,或者自己写库不用改设计愿意怎么用都行。不到万不得已,哪有这么用的,还教新手这样解决问题我也是服了,而且连别人什么问题都看不明白。
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 11:48:16 | 显示全部楼层
xianshasaman 发表于 2018-11-29 11:42
不好意思啊,确实不该在论坛吵架。
其实道理我都懂,结构体的赋值有好几种方法,他那种强制转换是可读性 ...

现在我问你我说的吹在哪里啊? 为什么报错啊? 不懂就说不懂, 别东拉西扯
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 11:50:22 | 显示全部楼层
你可以说我误解楼主的问题, 但说我吹牛就拿证据出来说, 我说的那一点是吹的
回复

使用道具 举报

15

主题

184

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2014-4-29
在线时间
299 小时
发表于 2018-11-29 12:06:35 | 显示全部楼层
edmund1234 发表于 2018-11-29 11:48
现在我问你我说的吹在哪里啊? 为什么报错啊? 不懂就说不懂, 别东拉西扯

你说加个强制转换就行了。
1.你自己看看楼主的代码加个强制转换能不能解决问题?
2.你自己再好好想想是不是楼主的代码不加强制转换就可以解决问题?

你的办法不好使,好使的办法和你没关系,你不是吹牛逼是什么?
我们在论坛讨论问题谁不是知错就改?就你特殊?别人不理你还追着人杠,你这么闲还不如回去好好翻翻书
回复

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2018-11-29 13:59:58 | 显示全部楼层
不用加是因為初始化, 執行時才改寫的要加
24F那個是因為初始化才不用加
還有魔術棒裡的C99要打勾

話說~
我第一次看到13F對結構成員的賦值寫法時(同事的代碼)
心理也是在想這是C語言嗎
回复

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2018-11-29 14:14:39 | 显示全部楼层
看一下樓主的問題,如果沒理解錯

結構成員要存放的應該是RXBUFF的地址吧

而且這寫法感覺不出有啥好處...


回复

使用道具 举报

0

主题

113

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3321
金钱
3321
注册时间
2017-12-14
在线时间
406 小时
发表于 2018-11-29 14:22:14 | 显示全部楼层
楼主都不解释,我想对他不是很重要
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-11-29 18:51:58 | 显示全部楼层
xianshasaman 发表于 2018-11-29 12:06
你说加个强制转换就行了。
1.你自己看看楼主的代码加个强制转换能不能解决问题?
2.你自己再好好想想是 ...

小朋友, 别见到个括号就喊强制转换,强制转换的意思是先前定义后再重新定义的叫强制转换, 找个你稍微懂一点的题再吹哈。

我说的是不是吹的可不是你说了算, 不懂却装早就知道的, 心里明白, 还强制转换呢。


回复

使用道具 举报

15

主题

184

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2014-4-29
在线时间
299 小时
发表于 2018-11-29 22:58:27 | 显示全部楼层
edmund1234 发表于 2018-11-29 18:51
小朋友, 别见到个括号就喊强制转换,强制转换的意思是先前定义后再重新定义的叫强制转换, 找个你稍微懂 ...

你好好看看自己在说什么吧。
你可以自己测试一下,预先定义第二个结构变量,recvdef recvC_2,然后在第一个结构变量赋值后,给它赋值为第一个变量的值
recvC_2 = recvC;
你看看这里不加(recvdef)会不会报错,要是你还不明白为什么,那就没办法了,谁也帮不了你,你自己查手册吧。

另外,这个问题和强制转换叫不叫强制转换可有一点关系?你拐到这里来讨论强制转换的名字就能证明你对?结果还闹个乌龙。你这么瞎扯就是说的越多错的越多,你不理解强制转换,那就查手册去,硬杠真没用,这里不是文史类的论坛,搞技术就是实事求是,大家都不傻,你要是真能指明我哪里确实说错了,大家都会服你,我也服你,但是你这么睁着眼瞎说只会丢人现眼。

回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2018-11-30 12:59:46 | 显示全部楼层
楼主还是在程序执行时初始化吧,与编译时初始化效果是一样的,结构体和变量应该都是在RAM区,上电后值是不确定的,编译时初始化的方式 ,我的理解应该是在Flash区保存了初始化的值,编译器汇编出来的程序应该是自动加入了对变量或结构体的赋值指令,
学艺不精,欢迎指教。
回复

使用道具 举报

49

主题

341

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5265
金钱
5265
注册时间
2012-8-25
在线时间
1025 小时
发表于 2018-11-30 14:23:22 | 显示全部楼层
我觉得你需要指针
typedef struct {
        u8 *u1c1;
        u8 *u2c1;
        u8 *u3c1;
        u8 *u4c1;
        u8 *u1c2;
        u8 *u2c2;
        u8 *u3c2;
        u8 *u4c2;
}recvdef;

在com1.c中定义结构体
recvdef recvC=
{
        &USART1_RX_BUF[5], //第一个命令字
        &USART2_RX_BUF[5],
        &USART3_RX_BUF[5],
        &USART4_RX_BUF[5],
        &USART1_RX_BUF[6], //第二个命令字
        &USART2_RX_BUF[6],
        &USART3_RX_BUF[6],
        &USART4_RX_BUF[6]
};
回复

使用道具 举报

19

主题

45

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1379
金钱
1379
注册时间
2016-2-20
在线时间
336 小时
 楼主| 发表于 2018-12-3 23:06:18 | 显示全部楼层
不好意思,赶项目,加班。没及时看帖子,先感谢大家讨论技术问题。
是这样的,因为通信协议没确定,所以接收的命令字可能位置会变化,而在代码中要根据接收的命令字做相应处理。所以先在代码中这样定义了
#define recvC10   USART1_RX_BUF[5]
#define recvC11   USART2_RX_BUF[5]
#define recvC12   USART3_RX_BUF[5]
#define recvC13   USART4_RX_BUF[5]
#define recvC20   USART1_RX_BUF[6]
#define recvC21   USART2_RX_BUF[6]
#define recvC22   USART3_RX_BUF[6]
#define recvC23   USART4_RX_BUF[6]

本来是想用结构体的,但结构体成员初始化时报错。所以先这样做了。
楼上各位提到的方法,在项目不太急的时候我会再试。
感谢各位!
回复

使用道具 举报

19

主题

45

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1379
金钱
1379
注册时间
2016-2-20
在线时间
336 小时
 楼主| 发表于 2018-12-3 23:09:22 | 显示全部楼层
四天前看了  原子哥  的回复后没再看帖,欢迎大家理性讨论 纯粹的技术问题
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-12-4 06:52:11 来自手机 | 显示全部楼层
楼主这样做有什么高明的地方?感觉完全没必要讨论啥
回复

使用道具 举报

19

主题

45

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1379
金钱
1379
注册时间
2016-2-20
在线时间
336 小时
 楼主| 发表于 2018-12-4 08:51:33 | 显示全部楼层
没有什么高明的地方。只是觉得用结构体也可以,但当时没搜到方法,所以看看有人能有高招不?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-22 08:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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