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

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

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

Про typedef - C++

14.04.2013, 13:42. Просмотров 466. Ответов 3
Метки нет (Все метки)

Читаю книгу Дейтела наткнулся на программу, в которой не могу понять одну деталь, а именно смотрим в комментариях ниже.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
 
struct listNode {
char data;
struct listNode *nextPtr;
};
 
typedef struct listNode LISTNODE; //просто LISTNODE стал синонимом listNode
typedef LISTNODE *LISTNODEPTR; //это не понятно, как указатель может стать синонимом типа структуру LISTNODE?
 
int main()
{
LISTNODEPTR startPtr = NULL; //это типа чтобы не писать LISTNODE *startPrt=NULL?
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 13:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Про typedef (C++):

Про typedef - C++
Читая книгу Дейтеля, дошёл до стеков и не понял небольшую мелочь, которая вводит меня в заблуждение. У нас есть структура и прототипы...

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
14.04.2013, 13:44 #2
Цитата Сообщение от aleksandr_t94 Посмотреть сообщение
это не понятно, как указатель может стать синонимом типа структуру LISTNODE
Просто читать следует как
C++
1
typedef LISTNODE* LISTNODEPTR;
LISTNODEPTR — это синоним для типа LISTNODE*.

Теоретически, такой тайпдеф помогает от ошибок вида:
C++
1
2
3
LISTNODE* startPtr, endPtr; // startPtr указатель, endPtr нет
 
LISTNODEPTR startPtr, endPtr; // оба указатели
1
aleksandr_t94
0 / 0 / 0
Регистрация: 27.01.2013
Сообщений: 100
14.04.2013, 13:50  [ТС] #3
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Просто читать следует как
C++
1
typedef LISTNODE* LISTNODEPTR;
LISTNODEPTR — это синоним для типа LISTNODE*.
А можно было так написать?
C++
1
typedef struct listNode *LISTNODEPTR;
А потом просто в int main писать так как и раньше:
C++
1
LISTNODEPTR startPtr=NULL;//можно же заменить на listNode *startPtr=NULL?
0
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
14.04.2013, 13:55 #4
Конечно можно.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2013, 13:55
Привет! Вот еще темы с ответами:

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

Использование Typedef - C++
Читал книгу по паттернам и натолкнулся на такой пример в паттерне command: template&lt;class Receiver&gt; class SimpleCommand : public...

Отличия using и typedef - C++
Всем привет. Собственно вопрос в чем различия при использовании: using size_type = unsigned long; и typedef unsigned...

Странности с typedef - C++
В задании нужно определить с помощью typedef массив char.Пишу в header-файле:typedef char masschar;Потом делаю так:masschar cfg;И код...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.04.2013, 13:55
Ответ Создать тему
Опции темы

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