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

typedef как понять данную строку - C++

Восстановить пароль Регистрация
 
GroundZero
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 9
31.10.2013, 14:06     typedef как понять данную строку #1
typedef switch_status_t (*switch_module_runtime_t) SWITCH_MODULE_RUNTIME_ARGS;
как понять данную строку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
31.10.2013, 14:08     typedef как понять данную строку #2
Это определение нового типа switch_module_runtime_t.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
31.10.2013, 14:17     typedef как понять данную строку #3
castaway, Слишком просто. typedef не является определением нового типа.
GroundZero, switch_module_runtime_t станет алиасом для указателя на функцию, которая принимает SWITCH_MODULE_RUNTIME_ARGS и возвращает switch_status_t.
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
31.10.2013, 14:21     typedef как понять данную строку #4
ForEveR, от чего же? typedef так и расшифровывается type definition - определение типа.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
31.10.2013, 14:22     typedef как понять данную строку #5
castaway,
Declarations containing the decl-specifier typedef declare identifiers that can be used later for naming
fundamental (3.9.1) or compound (3.9.2) types.
...
A name declared with the typedef specifier becomes a typedef-name. Within the scope of its declaration,
a typedef-name is syntactically equivalent to a keyword and names the type associated with the identifier in
the way described in Clause 8. A typedef-name is thus a synonym for another type. A typedef-name does
not introduce a new type the way a class declaration (9.1) or enum declaration does.
Где тут что-то про определение нового типа?
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
31.10.2013, 14:28     typedef как понять данную строку #6
"Определяет идентификаторы, которые впоследствии могут быть использованы для обозначения фундаментальных и составных типов."
Разумеется в стандарте не говориться тупо: "New type defenition/declaration", но по сути то это оно и есть.
Грубо говоря да, это алиас.
GroundZero
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 9
31.10.2013, 15:09  [ТС]     typedef как понять данную строку #7
в моем понимании это определение типа SWITCH_MODULE_RUNTIME_ARGS являющегося указателем на switch_module_runtime_t

тока не понятно что здесь значит switch_status_t
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
31.10.2013, 15:14     typedef как понять данную строку #8
GroundZero, Неверное понимание чо. SWITCH_MODULE_RUNTIME_ARGS это видимо макрос, скинуть можете?
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
31.10.2013, 15:17     typedef как понять данную строку #9
Скорее всего это (void) из freeswitch.
GroundZero
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 9
31.10.2013, 15:22  [ТС]     typedef как понять данную строку #10
вот что нашел

#define SWITCH_MODULE_RUNTIME_ARGS (void)

typedef enum {
SWITCH_STATUS_SUCCESS,
.....
SWITCH_STATUS_WINBREAK = 730035
} switch_status_t;
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
31.10.2013, 15:27     typedef как понять данную строку #11
Цитата Сообщение от castaway Посмотреть сообщение
Это определение нового типа switch_module_runtime_t.
Это псевдоним.
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
31.10.2013, 15:28     typedef как понять данную строку #12
Цитата Сообщение от programina Посмотреть сообщение
Это псевдоним.
Ну тогда уж синоним, раз мы так точно следуем тому что написано в стандарте.
Alex5
883 / 618 / 81
Регистрация: 12.04.2010
Сообщений: 1,552
31.10.2013, 15:40     typedef как понять данную строку #13
Цитата Сообщение от GroundZero Посмотреть сообщение
в моем понимании это определение типа SWITCH_MODULE_RUNTIME_ARGS являющегося указателем на switch_module_runtime_t
тока не понятно что здесь значит switch_status_t
C++
1
typedef int ( * pFunc ) (void )
pFunc - это имя типа. Тип - указатель на функцию. Аргументы функции: void. Возвращаемое значение: int.
Сравните с записью
C++
1
typedef switch_status_t ( * pFunc ) (void )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2013, 16:28     typedef как понять данную строку
Еще ссылки по теме:

C++ Узнать, какие согласные буквы не входят в данную строку
C++ Как объявить указатель на массив через typedef и как инициализировать такой тип
Как правильно пользоваться typedef для декларации типа указателя на функцию? C++

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

Или воспользуйтесь поиском по форуму:
GroundZero
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 9
31.10.2013, 16:28  [ТС]     typedef как понять данную строку #14
Спасибо
Yandex
Объявления
31.10.2013, 16:28     typedef как понять данную строку
Ответ Создать тему
Опции темы

Текущее время: 01:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru