Dlaczego można zadeklarować strukturę i niestrukturę o tej samej nazwie?

Widocznie,

Z powodów, które sięgają do prehistorii C, możliwe jest zadeklarowanie struktury i niestruktury o tej samej nazwie w tym samym zakresie. - (Bjarne Stroustrup - język programowania C ++. 4. edycja)

Na przykład:

struct Ambig {};

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

Ciekawe, jaki był początkowy powód? Bez zrozumienia wydaje się przykładem złego projektowania języka, co powoduje dwuznaczność i jest mylące.

questionAnswers(4)

yourAnswerToTheQuestion