Тип void
не имеет размера; это будет ошибка компиляции. По той же причине вы не можете сделать что-то вроде:
void n;
EDIT. К моему удивлению, выполнение sizeof(void)
на самом деле делает компиляцию в GNU C:
$ echo 'int main() { printf("%d", sizeof(void)); }' | gcc -xc -w - && ./a.out
1
Однако в C ++ это не:
$ echo 'int main() { printf("%d", sizeof(void)); }' | gcc -xc++ -w - && ./a.out
<stdin>: In function 'int main()':
<stdin>:1: error: invalid application of 'sizeof' to a void type
<stdin>:1: error: 'printf' was not declared in this scope