Почему указатели на неопределенные структуры иногда недопустимы в C и C ++

Почему

void foo(T*);

недопустимо как в C, так и в C ++ (потому что T не определено), тогда как

void foo(struct T*);

является допустимым, даже если он все еще не определяет T ? Есть ли какая-либо ситуация, в которой для вызывающей стороны имеет значение семантическая разница, является ли T структурой или каким-либо другим типом (class / enum / typedef / и т. Д.)?

8
задан Mehrdad 3 May 2011 в 21:48
поделиться