Почему можно объявить структуру и неструктуру с одинаковыми именами?

По всей видимости,

По причинам, дошедшим до предыстории C, возможно объявить структуру и неструктуру с одинаковыми именами в одной и той же области видимости. - (Бьярне Страуструп - Язык программирования C ++. 4-е издание)

Например:

struct Ambig {};

// the struct must be referred to with the prefix struct
void Ambig(struct Ambig* buf) {}

Мне просто интересно, какова была первоначальная причина? Без понимания это кажется примером плохого языкового дизайна, который вызывает двусмысленность и сбивает с толку.

Ответы на вопрос(4)

Ваш ответ на вопрос