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

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

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

Про typedef - C++

14.04.2013, 13:42. Просмотров 446. Ответов 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?
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 13:42     Про typedef
Посмотрите здесь:

C++ improper use of typedef
Оператор typedef C++
typedef и vector C++
не видит typedef C++
C++ Про typedef
C++ Пояснение typedef
C++ Наследование typedef'a
C++ Improper use of typedef
C++ тип typedef
работа с typedef C++
C++ _W64 в typedef
C++ применение typedef

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

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

Теоретически, такой тайпдеф помогает от ошибок вида:
C++
1
2
3
LISTNODE* startPtr, endPtr; // startPtr указатель, endPtr нет
 
LISTNODEPTR startPtr, endPtr; // оба указатели
aleksandr_t94
0 / 0 / 0
Регистрация: 27.01.2013
Сообщений: 100
14.04.2013, 13:50  [ТС]     Про typedef #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?
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
14.04.2013, 13:55     Про typedef #4
Конечно можно.
Yandex
Объявления
14.04.2013, 13:55     Про typedef
Ответ Создать тему
Опции темы

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