Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2013, 16:07   #1
xe3
Пользователь
 
Аватар для xe3
 
Регистрация: 11.12.2012
Сообщений: 29
По умолчанию Народ, разница в определении структур. Чем отличается.

В коде встречаются два варианта определения типа структур, в чем разница и какое, формально, правильнее:

struct MyStruct
{
int a;
};

и

typedef struct _tagMyStruct
{
int a;
}MyStruct;

?
xe3 вне форума Ответить с цитированием
Старый 30.01.2013, 16:26   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Формально - эквивалентны, насколько помню (ну, за вычетом того, что в первом не объявляется имени _tagMyStruct). Второй вариант остался от языка C, в котором первый вариант имел кое-какие минусы для программиста.
Abstraction вне форума Ответить с цитированием
Старый 30.01.2013, 18:25   #3
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

вобще то typedef делает тип. он очень удобен если я сразу хочу объявить несколько типов.. на одну и туже структуру данных.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 30.01.2013, 20:18   #4
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

для с++ непринципиально.
для си - при объявлении переменной, нужно всегда было указывать, что она структура:

Код:
struct MyStruct {  int a; };

...

struct MyStruct value;
typedef позволяет писать просто: MyStruct value;
_Bers вне форума Ответить с цитированием
Старый 31.01.2013, 12:36   #5
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Цитата:
вобще то typedef делает тип. он очень удобен если я сразу хочу объявить несколько типов.. на одну и туже структуру данных.
Typedef не делает типов, он создает синонимы их имён.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 31.01.2013, 12:40   #6
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Typedef не делает типов, он создает синонимы их имён.
typedef от слова type define. Но то что вы сказали и является типом. например указатель на структуру это определённый тип данных, который содержит долеко не саму структуру данных. Такое объяснения я думаю будет более логичным.
____________
Для ясности привожу код
Код:
typedef struct Simple_s {
данные
} Simple, *lpSimple;
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 31.01.2013 в 12:43.
Perchik71 вне форума Ответить с цитированием
Старый 31.01.2013, 16:22   #7
xe3
Пользователь
 
Аватар для xe3
 
Регистрация: 11.12.2012
Сообщений: 29
По умолчанию

Народ! Спасибо! Понятно, С++ суть сплошные рудименты и атавизмы. )))
xe3 вне форума Ответить с цитированием
Старый 31.01.2013, 16:25   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от xe3 Посмотреть сообщение
Народ! Спасибо! Понятно, С++ суть сплошные рудименты и атавизмы. )))
ну тогда идите на язык где нет этого.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.02.2013, 12:27   #9
xe3
Пользователь
 
Аватар для xe3
 
Регистрация: 11.12.2012
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ну тогда идите на язык где нет этого.
Не дождетесь! )))
xe3 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем отличается интерпретатор от компилятора? Kasper1 Свободное общение 10 22.12.2010 12:36
Чем запрос отличается от поиска Илья Сергеевич Помощь студентам 1 23.01.2010 12:13
Чем отличается IA-64 от IA-32 Ivan_32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 09.06.2009 16:13
Чем отличается AX от BX? veter_s_morya Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 05.05.2008 16:50
Чем отличается Free от FreeInstance? andrey4623 Общие вопросы Delphi 5 27.01.2008 10:18