初始化列表中不应存在重复的指派符
6.6.3 ID_repeatedDesignator
重复的指派符(designator)会使其指定的元素被重复初始化,往往意味着笔误或复制粘贴错误。
示例:
struct T { int x, y; };
struct T obj = { .x = 0, .x = 1 }; // Non-compliant
int arr[3] = { [0] = 0, [1] = 1, [1] = 2 }; // Non-compliant
例中重复的指派符 .x 和 [1] 是没有意义的。
依据
ISO/IEC 9899:1999 6.7.8(6 7)
ISO/IEC 9899:2011 6.7.9(6 7)
参考
MISRA C 2012 9.4