我想要一个类似于这个(无效)的构造:
const uint8_t uArray[] = { uint8_t(sizeof(uArray)), 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)
并且uArray [0]应为4并在编译时自动填充,这是USB描述符定义的情况,通常表示为字节数组,第一个字节值是元素中的大小.
这在理论上应该是可能的,因为数组已经初始化但不知何故我无法表达它.
欢迎任何解决此问题的建议.
小智 4
我阅读了规范http://open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf,在第6.7.8.19段中,它指出初始化按初始化列表顺序进行,在6.7.8.22中它说“如果初始化了未知大小的数组,则其大小由具有显式初始化程序的最大索引元素确定。在其初始化程序列表的末尾,该数组不再具有不完整的类型。” 对我来说,这表明在初始化第一个值时,数组的类型(及其大小)仍然不完整。