I recently wrote a function template which takes a reference to a C-array:
template void foo(T(&c_array)[N]);
The GCC Manual has a whole thing on zero length arrays. This is a GCC extension as is somewhat analogous to incomplete arrays.