I\'m looking for a formal explanation of that fact in the Standard. I\'ve found what 3.9.1/9 says and trying to give an explanation used that section.
S
"void type is an incomplete type"
You can't create variables of any incomplete type
"...that cannot be completed"
While your example of extern incomplete struct can be completed at some later point, the compiler knows that any declaration of type void can never be completed.
extern
void