C/C++: Есть ли конкретная причина, по которой "void" не был просто определен как "typedef struct{} void" (т.е. пустая структура) с соответствующими правилами приведения?

В качестве отступления: такой стандартный typedef поможет уменьшить количество зарезервированных слов в C/C++ и перенести void в простое объявление типа, например, в ;. (см. SRB в AB33/ март 1972 г. - PDF=7 КБ)

1 ответ

Решение

Это довольно умозрительно. Но одна веская причина в том, что void не пустое значение; это отсутствие значения. Например, функция с подписью int f(void) принимает ноль аргументов, а не один.

Другие вопросы по тегам