Оба этого стиля:
struct _something
{
...
};
typedef struct _something someting;
и этот стиль:
typedef struct _something
{
...
} something;
являются правильными объявлениями typedef в C.
Обратите внимание, что присутствие объявления структуры в заголовочном файле сделано намеренно: мне нужно иметь доступ к внутренним компонентам структуры в другом месте.
Одним из недостатков первого объявления является то, что при использовании любой IDE автоматический "переход к объявлению" часто направляет вас к typedef struct _something someting;
вместо того, чтобы дать вам непосредственно определение реальной структуры.
Во втором методе вы переходите непосредственно к определению структуры.
Есть ли причина, по которой можно было бы использовать первый метод?
Код, над которым я работаю, полон этих...
Это просто плохая/хорошая привычка сопровождающих?