美文网首页C语言C语言&嵌入式编程语言爱好者
关于遇到C结构体中出现以.开头的疑惑

关于遇到C结构体中出现以.开头的疑惑

作者: 檀蒜 | 来源:发表于2021-04-04 16:37 被阅读0次

在学习过程中,经常看到一些源文件中有结构体struct中的成员是以.开头的,如:

staticstructuart_ops sw_uart_ops={.tx_empty=sw_uart_tx_empty,.set_mctrl=sw_uart_set_mctrl,.get_mctrl=sw_uart_get_mctrl,.stop_tx=sw_uart_stop_tx,.start_tx=sw_uart_start_tx,.stop_rx=sw_uart_stop_rx,.enable_ms=sw_uart_enable_ms,.break_ctl=sw_uart_break_ctl,.startup=sw_uart_startup,.shutdown=sw_uart_shutdown,.flush_buffer=sw_uart_flush_buffer,.set_termios=sw_uart_set_termios,.type=sw_uart_type,.release_port=sw_uart_release_port,.request_port=sw_uart_request_port,.config_port=sw_uart_config_port,.verify_port=sw_uart_verify_port,.pm=sw_uart_pm,};

staticstructfile_operations test_fops={.owner=THIS_MODULE,.open=chrtest_open,.read=chrtest_read,.write=chrtest_write,.release=chrtest_release,};

然后感觉这种格式很奇怪,查了资料后发现,

这个是C99标准中的结构体初始化方法。

结构体的乱序赋值,好像是GCC的扩展

这是一个C的问题,初始化的时候指定成员的名字,即使在结构体增加,插入字段的时候代码也可以正常工作。

也就是说,在声明定义了结构体后,这个结构体可能有很多成员,而在使用这个结构体进行初始化时,可以不按顺序、不全部用到地来进行赋值初始化。

(由于之前查过一次然后隔一段时间又忘了,故博客记录一波~)

相关文章

  • 关于遇到C结构体中出现以.开头的疑惑

    在学习过程中,经常看到一些源文件中有结构体struct中的成员是以.开头的,如: staticstructuart...

  • C语言和OC的结构体(struct)

    Struct(结构体) 1.结构体定义 2.结构体变量 3.结构体数组 4.C语言结构体指针 5.C语言共用体 6...

  • c语言中的结构体

    结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。 一、结构体的形态 C源程序(struct.c):...

  • 闲聊C语言结构体

    结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。 一、结构体的形态 C源程序(struct.c):...

  • 《The Big Nerd Ranch Guide》笔记1

    一、C结构体与Objective-C类之间: 共同点:C结构体是一块内存,对象也是一块内存。C结构体有数据成员,每...

  • C++系列 --- 结构体、权限修饰符、类简介

    一、结构体 结构体:自定义的数据类型 C++ 中的结构和C中的结构有什么区别? C++中的结构除具备了C中的所有功...

  • 01-OC对象的本质

    OC是通过C/C++的什么数据结构实现我们的OC对象呢 结构体--OC对象的本质就是C/C++的结构体 Class...

  • C语言 13 结构体数组

    C语言 13 结构体数组 结构体数组的定义 结构体数组初始化 结构体成员的使用 格式 : 字符串成员的处理 结构体...

  • V语言学习笔记-10结构体

    结构体定义 v结构体的名字必须是大写字母开头,如果是小写字母开头会编译报错 结构体被分配到内存的栈中,引用类型 取...

  • 嵌入式学习笔记19.11.25

    c语言结构体 结构体一般定义全局变量 struct stu{//struct 定义结构体 stu 结构体名称 in...

网友评论

    本文标题:关于遇到C结构体中出现以.开头的疑惑

    本文链接:https://www.haomeiwen.com/subject/haslkltx.html