Да. В C (в отличие от C ++) структуры находятся в своем собственном пространстве имен. Так что, если вы определили
struct sockaddr { ... }
Вы не можете использовать его как
sockaddr s;
sockaddr *ps;
Чтобы сделать это допустимым, вы можете использовать typedef для импорта в неструктурное пространство имен имен типов:
typedef struct sockaddr { ... } sockaddr;
sockaddr s, *p;