Qual é a necessidade de um array com zero elementos?

No código do kernel do Linux, encontrei a seguinte coisa que não consigo entender. struct bts_action { u16 type; u16 size; u8 data[0]; } __attribute__ ((packed)); O código está aqui: http://lxr.free-electrons.com/source/include/linux/ti_wilink_st.h Qual é a necessidade e o objetivo de uma...