Объявление структуры в стиле C

У меня быстрый вопрос о структурах в стиле C. Я копался в образце кода и нашел структуру, объявленную следующим образом:

typedef struct _STRUCTNAME
{
   // struct contents
} STRUCTNAME;

Обратите внимание на отсутствие подчеркивания во второй раз, когда появляется STRUCTNAME. Насколько я понимаю, это объявляет один _STRUCTNAME с именем STRUCTNAME, и больше объектов этой структуры не может быть создано.

Однако, похоже, это не так. Структура этого типа никогда не создавалась в коде, за исключением одного места: в глобальном массиве таких объектов, который использовался в случайных местах:

const struct STRUCTNAME ARRAYNAME[] = 
{
   // various STRUCTNAMEs declared here
};

Еще раз обратите внимание на отсутствие подчеркивания (которое, как я думал, было именем экземпляр объекта?)

Я совершенно не понимаю?

Может кто-нибудь объяснить?

8
задан Bo Persson 25 July 2011 в 16:40
поделиться