Что означает строка с typedef?

386
12 мая 2017, 17:23

Рылся в коде прошлого программиста и нашел вот такую строку с кодом:

typedef unsigned short(*GetValAndSts)(INT64 *sid, float *value, unsigned short *sts);

Что это означает ? Какой-то составной тип данных ? Что-то вроде структуры ? Я очень плох в C++ и прежде никогда не использовал typedef конструкцию, а в поисковике не знаю как написать правильно, чтобы прочитать подробнее про это.

Answer 1

Это - объявление [псевдонима] типа GetValAndSts, который представляет собой указатель на функцию от указанных параметров.

// Объявление псевдонима типа
typedef unsigned short(*GetValAndSts)(int *sid, float *value, unsigned short *sts);
// Объявление функции
unsigned short foo(int *sid, float *value, unsigned short *sts)
{
    return 0;
}
int main()
{
    // Переменной типа GetValAndSts присваиваем указатель на foo
    GetValAndSts f = foo;
}

Вот кратенько что такое typedef - тут или тут.

READ ALSO
Как получить доступ к новым созданным элементам?

Как получить доступ к новым созданным элементам?

Добрый день! Не могу разобраться как мне отследить новые элементыЕсть к примеру такая структура

301
Перебор массива вложенного в массив в массиве

Перебор массива вложенного в массив в массиве

Парни, помогите разобраться в следующемЕсть массив

258
Изменить положение google map при загрузке в div

Изменить положение google map при загрузке в div

Использую api google maps для отображение кастомной карты на сайтеСтоит маркер с координатами

275
Как подружить OverlayView и MarkerClusterer?

Как подружить OverlayView и MarkerClusterer?

В одном проекте потребовалось сделать свой HTML маркеры которые реализованы совершенно стандартным кодом который выдает гугл при гуглении,...

320