Tag: initialization list

是否有办法警告行为不端的指定初始化器?

C99引入了结构的指定初始化器的概念。 例如,给定: typedef struct { int c; char a; float b; } X; 我可以初始化为: X foo = {.a = ‘\1’, .b = 2.0F, .c = 4}; 并且调用: printf(“c = %d\na = %hhu\nb = %f”, foo.c, foo.a, foo.b); 输出: c = 4 a = 1 b = 2.000000 如此处所述,这具有分配给c然后b然后b的“令人惊讶的行为”,与我指定的初始化器的顺序无关。 如果我有这样的函数,这将成为一个真正的问题: int i = 0; int f() […]