rei1984 发表于 2022-7-7 11:24:56

单片机用c开发,struct中"[]"语句和"."语句是什么作用的?



最近在看国外飞控的代码,大部分都是 *.c的代码,但是在国内我们实际开发中,从来没有写过类似的语法;




大家帮忙看下,这是c语言后期 发展出来的新标准吗??

尤其是图中 123   分别表示什么意思?

442502587 发表于 2022-7-7 11:36:14

1 初始化赋值   3 枚举5那里对应的是5

rei1984 发表于 2022-7-7 11:37:32

442502587 发表于 2022-7-7 11:36
1 初始化赋值   3 枚举5那里对应的是5
(引用自2楼)

struct 里面 怎么可以 用    和.abc了??

主要疑问在这里。。。这些语法是后来新标准加的??

442502587 发表于 2022-7-7 11:38:55

rei1984 发表于 2022-7-7 11:37
struct 里面 怎么可以 用    和.abc了??

主要疑问在这里。。。这些语法是后来新标准加 ...
(引用自3楼)

你看看 Linux里面很多这样的

rei1984 发表于 2022-7-7 11:40:14

442502587 发表于 2022-7-7 11:38
你看看 Linux里面很多这样的
(引用自4楼)

是的。我看到老外好多都是这样写。。


不知道 c语言 怎么 还支持 这些 奇怪的东西。有没有什么 语法规则 可以学习?我记得书本上根本没有类似的东西

Semiconductor 发表于 2022-7-7 11:55:13

rei1984 发表于 2022-7-7 11:37
struct 里面 怎么可以 用    和.abc了??

主要疑问在这里。。。这些语法是后来新标准加 ...
(引用自3楼)

[]里面是枚举,如果放变量那就不行。
.结构体成员,结构体初始化时隐含了结构体变量。

墨非 发表于 2022-7-7 11:59:28

rei1984 发表于 2022-7-7 11:40
是的。我看到老外好多都是这样写。。


(引用自5楼)

这个写法,ISO C99标准就支持了,记得最新标准都到C18去了吧,所以语法类的还是要看一些最新的书籍啊!

dukelec 发表于 2022-7-7 12:07:00

我一直認為 linux 內核代碼是嵌入式的聖經(嵌入式包含 MCU),所以,沒事要看一下聖經

tang_qianfeng 发表于 2022-7-7 12:09:28

[]里是代表数组维度吗?

EMC菜鸟 发表于 2022-7-7 12:26:32

难道是定义了某结构体的常量数组、然后在定义时赋值?

kinoko 发表于 2022-7-7 12:28:41

一个是结构体数组初始化赋值,C99特性。还有一个知识点就是typedef enum
自己查资料理解。我不是好老师,不懂的解释清楚……

yyts 发表于 2022-7-7 13:00:59

就是定义结构变量数组,顺便赋初值。

csq463276932 发表于 2022-7-7 13:30:22

rei1984 发表于 2022-7-7 11:37
struct 里面 怎么可以 用    和.abc了??

主要疑问在这里。。。这些语法是后来新标准加 ...
(引用自3楼)

使用.abc这种方式赋值好处是: 对结构体成员变量赋值时不需要严格按照结构体里面成员变量顺序进行赋值。

20061002838 发表于 2022-7-7 17:02:55

.abc 是初始化指定的成员变量
[]是C99新增的,搜索 指定初始化器 ,作用跟上面一样,初始化指定的成员,可以用枚举也可以直接用数字,用一种显式的定义取代默认的排序

bbbbbv 发表于 2022-7-7 17:54:52

记号,以便以后看看。

qwe2231695 发表于 2022-7-8 00:44:18

apm px4 飞控里面c++用的飞起,一团糟

gonboy 发表于 2022-7-8 08:40:57

C99 支持
页: [1]
查看完整版本: 单片机用c开发,struct中"[]"语句和"."语句是什么作用的?