我以前写过很多C语言,但我不认识这个语法:
static const char *names[] = {
[BOND_MODE_ROUNDROBIN] = "load balancing (round-robin)",
[BOND_MODE_ACTIVEBACKUP] = "fault-tolerance (active-backup)",
[BOND_MODE_XOR] = "load balancing (xor)",
[BOND_MODE_BROADCAST] = "fault-tolerance (broadcast)",
[BOND_MODE_8023AD] = "IEEE 802.3ad Dynamic link aggregation",
[BOND_MODE_TLB] = "transmit load balancing",
[BOND_MODE_ALB] = "adaptive load balancing",
};在我看来,[...] =部分看起来很奇怪。(顺便说一句,BOND_MODE_ROUNDROBIN和其他宏都是宏,它们只是扩展到整数。)
发布于 2014-08-01 07:00:25
它被称为指定的初始化器,它是在C99中引入的。GCC也支持它作为一个扩展。
它用于初始化结构和数组,详见指定初始化器。
发布于 2014-08-01 07:00:14
那是一个指定初始化器。它允许您以任意顺序对数组的内容进行不雅化。
发布于 2014-08-01 07:00:19
这里的名称是char点的数组。
这些指针指向存储在只读部分中的字符串。
并使用指定的初始化器方法进行初始化。
因此,在这里,您可以初始化任何数组的任何顺序的索引。这些宏是数组的索引。
https://stackoverflow.com/questions/25074574
复制相似问题