Puntero a una estructura que no ha sido declarada

Posible duplicado:
undefined C struct forward declaraciones

¿Cómo es posible declarar un puntero a la estructura incluso cuando no declaro una estructura?

#include int main(){ struct s{ struct p *ptr; }; } 

¿Por qué lo anterior comstack con éxito?

Es posible porque el comstackdor no necesita saber nada acerca de la estructura si solo trata con un puntero a ella.

Esta es una técnica de uso común y generalmente se llama un “puntero opaco”.