typedef struct {
    int hour;
    int min;
    int sec;
} counter_t;

在代码中,我想在不显式初始化每个成员变量的情况下初始化这个 struct 的实例.也就是说,我想做一些类似的事情:

counter_t counter;
counter = {10,30,47}; //doesn't work

10:30:47

而不是

counter.hour = 10;
counter.min = 30;
counter.sec = 47;

不要回想起这方面的语法,也没有立即从Google中找到实现这一点的方法.

谢谢

推荐答案

初始化:

counter_t c = {10, 30, 47};

任务:

c = (counter_t){10, 30, 48};

后者被称为"复合文字".

C++相关问答推荐

单指针和空参数列表之间的函数指针兼容性

来自stdarg.h的c中的va_args无法正常工作<>

在函数中使用复合文字来初始化C语言中的变量

数据包未从DPDK端口传输到内核端口

使用NameSurname扫描到两个单独的字符串

自定义应用程序上的日志(log)轮换问题

将fget()与strcMP()一起使用不是正确的比较

在C语言中,是否可以使枚举数向后计数?

为什么我的Hello World EFI程序构建不正确?

为什么指针运算会产生错误的结果?

如何在POSIX-UEFI中获得输入?

如何用C语言为CLI应用程序编写按键检测系统?

C语言中MPI发送接收字符串时出现的分段错误

无法识别C编程语言的语法,如书中所示

将非连续物理内存映射到用户空间

问题:C#Define上的初始值设定项元素不是常量

不兼容的整数到指针转换传递';char';到类型';常量字符*

在我的第一个C语言中观察到的错误';你好世界';程序

WSASocket在哪里定义?

cs50拼写器分配中的无限循环