Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 04.02.2021
Сообщений: 63

Что значит "typedef struct _azac_empty* _azachandle"?

09.05.2022, 02:21. Показов 687. Ответов 7

Студворк — интернет-сервис помощи студентам
Здравствуйте, когда я копался в одной из библиотек я наткнулся на код
C++
1
2
3
struct _azac_empty {};
typedef struct _azac_empty* _azachandle;
typedef _azachandle ;
и я не могу понять что он делает ,помогите пожалуйста,Объясните что этот кодделает
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.05.2022, 02:21
Ответы с готовыми решениями:

Нюансы синтаксиса: что означает данная запись typedef struct S { T field; } s; ?
Есть следующий код typedef struct _IO_COMPLETION_CONTEXT { PVOID Port; PVOID Key; } IO_COMPLETION_CONTEXT; Меня не интересует...

Что значит такое объявление typedef int (*A) ( )?
typedef int (*A) ( ) Как его понять? Есть варианты ответа А. Объявление типа, что являет показатель за переменную типа int Б....

Что значит typedef BOOL(__stdcall* twglSwapBuffers) (HDC hDc);
Здравствуйте, скажите пожалуйста как работает код типа #ifdef STRICT typedef void *HANDLE; #if 0 && (_MSC_VER >...

7
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
09.05.2022, 04:05
АРТЕМ ЛАРЬКИН, делает псевдоним типа "указатель на _azac_empty" с именем _azachandle.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12923 / 6792 / 1818
Регистрация: 18.10.2014
Сообщений: 17,187
09.05.2022, 04:58
Цитата Сообщение от АРТЕМ ЛАРЬКИН Посмотреть сообщение
Объясните что этот кодделает
Он ничего не делает. С точки зрения языка C++ этот код - строка 3 - некорректен. Соответственно ни в какой реальной библиотеке вы на него наткнуться не могли.

Что касается элементарных свойств языка, вроде typedef: а что по этому поводу написано в вашей любимой книге про С++?
0
1 / 1 / 0
Регистрация: 04.02.2021
Сообщений: 63
09.05.2022, 13:55  [ТС]
TheCalligrapher, да я только заметил что код не полный вот его полная часть
C++
1
2
3
struct _azac_empty {};
typedef struct _azac_empty* _azachandle;
typedef _azachandle AZAC_HANDLE;
просто как я понимаю
C++
1
typedef
делает псевдоним но struct _azac_empty* это указатель на то место в оперативной памяти где храниться структура _azac_empty а tipedef делает псевдоним на тип, + 3 строчке на псевдоним делают ёще один псевдоним
если интересно это библиотека из пакета Microsoft.CognitiveServices.Speech .Эти библиотеки созданы для распознования речи
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
09.05.2022, 14:14
Цитата Сообщение от АРТЕМ ЛАРЬКИН Посмотреть сообщение
но struct _azac_empty* это указатель на то место в оперативной памяти где храниться структура _azac_empty а tipedef делает псевдоним на тип
Вот это:
Цитата Сообщение от АРТЕМ ЛАРЬКИН Посмотреть сообщение
struct _azac_empty*
и есть тип. Тип "указатель на struct _azac_empty".
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
09.05.2022, 14:14
Цитата Сообщение от АРТЕМ ЛАРЬКИН Посмотреть сообщение
struct _azac_empty* это указатель
Это тип указателя.

AZAC_HANDLE -> псевдоним для _azachandle
_azachandle-> псевдоним для struct _azac_empty*

C++
1
2
AZAC_HANDLE x = ...;//x - указатель на структуру struct _azac_empty
struct _azac_empty* y = ...;//y - указатель на структуру struct _azac_empty, но выглядит страшнее, чем AZAC_HANDLE
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
09.05.2022, 14:20
Цитата Сообщение от АРТЕМ ЛАРЬКИН Посмотреть сообщение
C++
1
2
3
struct _azac_empty {};
typedef struct _azac_empty* _azachandle;
typedef _azachandle AZAC_HANDLE;
Это значит, что:
AZAC_HANDLE похож на _azachandle, и также похож на _azac_empty*.

При объявлении переменных в теле программе:
C++
1
_azac_empty* x;
то вы сможете объявлять так:
C++
1
_azachandle x;
или
C++
1
AZAC_HANDLE x;
Т.е. вам не надо работать с знаком звезды ! Просто только так. (Это удобнее).
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12923 / 6792 / 1818
Регистрация: 18.10.2014
Сообщений: 17,187
09.05.2022, 17:16
Цитата Сообщение от АРТЕМ ЛАРЬКИН Посмотреть сообщение
делает псевдоним но struct _azac_empty* это указатель на то место в оперативной памяти где храниться структура _azac_empty
Если бы кому-то понадобилось работать "указателем на место в оперативной памяти где храниться структура _azac_empty" (sic) (tsya.ru), они бы так и писали - _azac_empty *, а не занимались объявлением каких-то псевдонимов. Объявлять псевдонимы для указателей не принято. Это дурная практика. Так давно не делают даже те, кто когда-то делал.

"Указывать на место в оперативной памяти где хранится структура _azac_empty" никакого смысла нет - это, как видите, пустая структура, которая никому не нужна и создаваться или "храниться" в оперативной памяти никогда не будет.

В данном случае типы _azachandle и AZAC_HANDLE- это, как видно из названия, хэндлы, а не указатели. Это типы некоей закрытой неизвестной природы, которая пользователя этих типов никак не касается. Что они хранят, пользователь не знает и знать не должен. Может быть это будут указатели на что-то где-то... Может быть это будут просто числа... . Не важно. Кто-то решил, что лучше будет объявлять такой тип как псевдоним для указателя на фиктивную пустую структуру _azac_empty - вот и объявили. Но чтобы понять, что в действительности будет храниться в таком хэндле, нужно смотреть остальную реализацию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.05.2022, 17:16
Помогаю со студенческими работами здесь

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

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

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

Typedef struct
Здравствуйте форумчане. С недавних пор пытаюсь научиться работать с микроконтроллерами. Параллельно изучаю С\С++. Так вот у меня...

typedef struct or struct
Понимаю, кто и что делает, но не понимаю, что приоритетнее typedef struct или struct


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru