Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.66
Lilim
6 / 6 / 0
Регистрация: 24.12.2011
Сообщений: 53
#1

Для чего typedef struct - C++

28.07.2013, 18:06. Просмотров 5100. Ответов 5
Метки нет (Все метки)

Часто в "профессиональном" коде вижу -
C++
1
2
3
typedef struct MyStruct {
// ...
} MyStuct;
даёт ли это какие то преимущества перед простым объявлением -
C++
1
2
3
struct MyStruct {
// ...
};
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2013, 18:06     Для чего typedef struct
Посмотрите здесь:

Для чего используют typedef? - C++
Здравствуйте программисты! Набрёл на тему,там используется какой-то typedef, подскажите пожалуйста,что это такое,как с ним работать. И...

typedef struct - C++
а зачем вы используете конструкцию typedef struct name{...} ? и какие она дает преимущества в отличии от struct name{...}

typedef struct .... - C++
Здравствуейте. Обьясните пожалуйсто новичку что означает этот код. typedef struct { long num_servers; long data_size; char*...

typedef struct - C++
Ребята, нужна помощь. Первый раз использую typedef struct. Вроде бы всё работает, но хочу удостовериться по причине: это мой уже 2-ой...

typedef struct + TXT - C++
Такое вот задание.. есть TXT файл, пропарсить смогу сам, а дальше не знаю что делать, допустим, считали данные : Строка : "Ученики" ...

Волшебные вещи с typedef struct - C++
у меня сейчас мозг взорвется не пойму в чем ошибка,где я не так делаю? #include <stdio.h> #include <locale.h> #include <stdlib.h> ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт CАвтор FAQ
17537 / 5775 / 370
Регистрация: 30.03.2009
Сообщений: 15,902
Записей в блоге: 26
28.07.2013, 18:16     Для чего typedef struct #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Принципиальных преимуществ кроме того, чтобы писать меньше букв, не даёт. Во втором случае в языке Си у тебя НЕ вводится новый идентификатор в область видимости, хотя сложно это назвать преимуществом. Первый вариант, в основном, нужен в тех случаях, когда внутри структуры описывается поле, которое есть указатель на эту же самую структуру (например, указатель next при реализации списка). По другому его создать не получится

Указатель на структуру - что напечатает программа
странное употребления к-го слова typedef
Fintt
10 / 10 / 0
Регистрация: 13.02.2012
Сообщений: 94
28.07.2013, 18:23     Для чего typedef struct #3
Например
C++
1
2
struct MyStruct {};
typedef MyStruct *My;
Если работаешь со списком так удобнее и вообще рекомендуется объявлять пользовательский тип как указатель на MyStruct. Если не ошибаюсь.
Evg
Эксперт CАвтор FAQ
17537 / 5775 / 370
Регистрация: 30.03.2009
Сообщений: 15,902
Записей в блоге: 26
28.07.2013, 18:29     Для чего typedef struct #4
Fintt, я вообще-то говорил о том, чтобы объявить указатель ВНУТРИ описания тела структуры, а не снаружи, как у тебя
Fintt
10 / 10 / 0
Регистрация: 13.02.2012
Сообщений: 94
28.07.2013, 18:31     Для чего typedef struct #5
Я теперь понял что это всё с С, я сообщение раньше начал писать просто вот и не увидел сразу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2013, 18:41     Для чего typedef struct
Еще ссылки по теме:

Программа через структуру typedef struct - C++
Люди помогите если несложно с программой, задание таково: 1.С клавиатуры вводятся пункты структуры - Студент: Матрикул - номер...

typedef непонятно чего - C++
Есть вот такой код typedef private void (T::*TimedFunction)(void); По сути это должна быть ссылка на функцию класса Т с возвращаемым...

Typedef для функций - C++
Здравствуйте! В книге Страуструпа в качестве примера приводится typedef для указателей на функции например: typedef void(*SIG_TYP)...

Typedef для переменной - C++
Добрый день. Есть примерно такая переменная:myScruct.someVal.val.objectЯ все это длинное и неудобное безобразие хочу обозначить...

Как правильно пользоваться typedef для декларации типа указателя на функцию? - C++
Мне нужны будут функции, принимающие параметр-указатель на функции с одним и тем же списком параметров и возвращаемым типом. Как правильно...

Компаратор для сортировки vector<list<struct>> - C++
Помогите, как реализовать компаратор для сортировки vector&lt;list&lt;struct&gt;&gt; ? struct Edge { int i,j,len; }; Массив заполняется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17537 / 5775 / 370
Регистрация: 30.03.2009
Сообщений: 15,902
Записей в блоге: 26
28.07.2013, 18:41     Для чего typedef struct #6
По поводу заведения typedef'а для указателя на структуру. На мой взгляд это тоже не очень удобно. Потому что в этом случае невозможно будет задавать указатель на const. Т.е. вот так можно

C
typedef struct {
  ...
} struct_t;
 
struct_t *ptr1;
const struct_t *ptr2;
а вот так нельзя (в смысле можно, но получим совсем не то, что хотели):

C
typedef struct {
  ...
} struct_t;
 
typedef struct_t * struct_ptr_t;
 
struct_ptr_t ptr1;
const struct_ptr_t ptr2;
а чтобы получить то, что хотели, то надо писать:

C
typedef struct {
  ...
} struct_t;
 
typedef struct_t * struct_ptr_t;
typedef const struct_t * struct_const_ptr_t;
 
struct_ptr_t ptr1;
struct_const_ptr_t ptr2;
Лично моё мнение - заведение отдельного typedef'а на указатель скорее приводит к бардаку и снижению читабельности кода, чем к порядку
Yandex
Объявления
28.07.2013, 18:41     Для чего typedef struct
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru