Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
pontakrin
1 / 1 / 0
Регистрация: 22.03.2010
Сообщений: 71
#1

странное употребления к-го слова typedef - C++

06.10.2012, 11:17. Просмотров 638. Ответов 4
Метки нет (Все метки)

встречаю вот такой вид употребления ключевого слова typedef:
C++
1
2
3
4
typedef struct                          // Создаём структуру для звезд
{
     int tmp;
} name;
это аналогично стандарту

C++
1
2
3
struct name{
  int tmp;
};
интересно почему так сложилось и до сих пор живо?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2012, 11:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос странное употребления к-го слова typedef (C++):

Работа со строками (sting.h) (печатать первые буквы слов в порядке убывания частоты их употребления) - C++
Составить программу, которая позволяет ввести текст, а потом печатает первые буквы слов в порядке убывания частоты их употребления. Слово...

Строка: .Написать программу, определяющую в заданном тексте для каждой буквы алфавита количество ее употребления. - C++
1.Написать программу, определяющую в заданном тексте для каждой буквы алфавита количество ее употребления. Не могли бы вы помочь)

typedef - C++
double f(double x){ } typedef double (*TPF)(double); TPF fff = f; fff(10.0); как и почему это работает корректно, если в...

Typedef - C++
Наткнулся на пример ниже: typedef char *cstring; //Каков тип переменной cstr в следующем объявлении: const cstring cstr; ...

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

typedef в c++ - C++
Здравствуйте! Нужно собрать полную информацию по оператору typedef в c++. Пока нашел, что typedef используется для задания новых...

4
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
06.10.2012, 11:23 #2
Потому что кого-то напрягает писать постоянно struct name (в Си так положено), поэтому они используют вариант с тайпдефом, чтобы писать просто name а-ля Си++.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
06.10.2012, 11:25 #3
Потому что недалёкие преподаватели утверждают, что перед изучением С++ необходимо выучить Си. В Си при создании объекта структуры приходилось писать слово struct, а если создать псевдоним, то уже не требовалось оно. И эти "лишние знания" перетекли в С++.
Первый вариант избыточен и бесполезен. Просто забудь про него.
0
pontakrin
1 / 1 / 0
Регистрация: 22.03.2010
Сообщений: 71
06.10.2012, 11:29  [ТС] #4
Цитата Сообщение от Deviaphan Посмотреть сообщение
недалёкие преподаватели утверждают, что перед изучением С++ необходимо выучить Си
абсолютно согласен засоряют голову людям.

а насчет употребления typedef вообще глупо т.к. писанины получается больше.

все ясно пасиб я так и думал это отголосок языка С
0
Evg
Эксперт CАвтор FAQ
18246 / 6371 / 438
Регистрация: 30.03.2009
Сообщений: 17,626
Записей в блоге: 28
06.10.2012, 16:23 #5
В общем-то уже ответили, но, возможно, не все увидели смысл.

Суть в том, что в языке Си к структуре, описанной как

C
struct name { ... };
можно было обращаться только как "struct name". Такая структура НЕ вводила новое имя "name" в текущей области видимости, а вводила, условно говоря, имя "struct name". Т.е. после такого описания структуры можно было бы завести переменную с именем name и она НЕ конфликтовала бы с "struct name". В Си++ сие поведение изменилось и при описании "struct name" в текущую область видимости вводятся два имени: "name" и "struct name". А потому использование typedef'а в Си++ в подобных местах стало избыточным (хотя оно полезно для Си)

Ну и для самообразования: Указатель на структуру - что напечатает программа а подробное пояснение тут: Указатель на структуру - что напечатает программа
0
06.10.2012, 16:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2012, 16:23
Привет! Вот еще темы с ответами:

typedef - C++
Сталкнулся с таким объвлением typedef __mpz_struct mpz_t; Не могу врубится что оно значит? ...

Typedef - C++
Доброго времени суток. Привожу вам отрывок из книги "C и Visual C++ 2008 для начинающих". В книге приведен пример объявления структуры с...

Пояснение typedef - C++
typedef bool (*comparator)(void* fisrt, void* second); что делает *comparator, и что это вобще ?

improper use of typedef - C++
Доброго времени суток, проблемка часто с которой сталкиваюсь я в процессе разработки это вызов членов функции т.е из каких то частей...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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