Vis*_*rma 2 c++ c++11
我偶然发现下面的代码令我感到困惑:
union { struct { uint32_t Id; uint8_t a_data[]; }vendor; uint8_t avp[0]; }data;
这与g ++ 7.2.1编译良好,但我无法理解为什么.在定义a_data时如何不需要提供大小?如何将avp的大小调整为零?
Som*_*ude 5
这是一个灵活的阵列成员,从技术上讲,它不是C++的一部分(它只是一个C-only功能).
一些编译器(尤其是GCC)很乐意将C中的功能添加为C++的扩展.因此它不可移植,你应该尽可能避免这样的代码.
归档时间:
7 年,4 月 前
查看次数:
81 次
最近记录: