Очень просто (по крайней мере, для меня), потому что некоторым людям нравится иметь возможность обрабатывать пользовательские типы как «первичные» типы.
Точно так же, как я не хотел бы говорить:
struct int i;
Я предпочитаю:
VIDEO_STREAM_CONFIG_CAPS vscc;
:
struct VIDEO_STREAM_CONFIG_CAPS vscc;
На самом деле, я обычно вообще избавляюсь от тега структуры, предпочитая:
typedef struct {
GUID guid;
ULONG VideoStandard;
:
} VIDEO_STREAM_CONFIG_CAPS;
Единственный раз, когда я обычно использую тег, это когда я должен ссылаться на тип в самом определении типа, например в связанных списках:
typedef struct sNode {
char paylod[128];
struct sNode *next;
} tNode;
Это потому, что во время созданияПо определению, tNode
еще не существует, но struct sNode
существует (вы можете думать об этом как о простой последовательности, если это облегчает задачу - struct sNode
создается в строке 1 выше, tNode
в строке 4, чтоозначает, что в строке 3, где вы создаете указатель next
, вы должны использовать имя структуры).
В случае, когда вы цитируете, тег структуры является избыточным, по крайней мере, в показанном коде.Неясно, объявляет ли какой-либо другой фрагмент кода переменную с именем структуры, а не с именем typedef.