powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / В чем отличие typedef struct T1 и struct T2?
3 сообщений из 3, страница 1 из 1
В чем отличие typedef struct T1 и struct T2?
    #38539266
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В чем отличие определения типов T1 и T2 и в каком случае какой из них предпочтителен?
Код: plaintext
1.
2.
3.
typedef struct { int a, b, c; } T1;

struct T2 { int a, b, c; };
...
Рейтинг: 0 / 0
В чем отличие typedef struct T1 и struct T2?
    #38539419
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася Уткин,

Различие есть только в языке C.
В С определение или объявление структуры не вводит новый тип данных.
Код: plaintext
1.
2.
3.
4.
struct T2 { int a, b, c; }; // T2 является именем структуры, но типа данных T2 нет.

T2 t2_inst; // так писать нельзя.
struct T2 t2_inst_2; // нужно писать так.



И соответственно, чтобы можно было писать объявление переменной без ключевого слова struct, нужно написать что-то типа:

Код: plaintext
1.
2.
3.
4.
5.
6.
struct T2 { int a, b, c; }; 
typedef struct T2 T1;

T2 t2_inst; // так писать нельзя всё равно
T1 t2_inst; // так писать теперь можно
struct T2 t2_inst_2; // так писать тоже можно.




Часто в коде на С пишут так:
Код: plaintext
1.
2.
3.
4.
typedef struct T2_tag { int a, b, c; } T2;

T2 t2_inst;                 // так писать можно.
struct T2_tag t2_inst_2; // так писать тоже можно.



В C++ различий нет, так что писать typedef для структуры не нужно, но пишут, поскольку названия структуры и типа структуры в коде на С разные, поэтому в С++ это тоже нужно.
...
Рейтинг: 0 / 0
В чем отличие typedef struct T1 и struct T2?
    #38539561
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понятно, в C нужно, а в C++ только для совместимости с C.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / В чем отличие typedef struct T1 и struct T2?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]