Предположим, я объявляю новый тип структуры C ++:
struct my_struct {
int a;
int b;
};
Могу ли я создать новый экземпляр этого типа структуры:
my_struct foo;
или же
struct my_struct foo;
Если оба работают, есть ли разница?
Да, вы можете использовать любой метод. Разница в том, что эта форма:
my_struct foo;
Недопустимо в C, поэтому вы должны использовать эту форму:
struct my_struct foo;
Который поддерживается в C ++ для обратной совместимости с C.
Оба работают. Основная причина, по которой вторая работает — это совместимость с C: в C первая не работает. В следствии, struct
с, как правило, typedef
Ed в C и есть два разных вида имен для struct
с и typedef
s.