Я новичок в C, и этот typedef выглядит немного странно для меня. Может кто-нибудь объяснить, что он делает?Что означает этот typedef?
typedef void (*alpm_cb_log)(alpm_loglevel_t, const char *, va_list);
Это файл заголовка.
Я новичок в C, и этот typedef выглядит немного странно для меня. Может кто-нибудь объяснить, что он делает?Что означает этот typedef?
typedef void (*alpm_cb_log)(alpm_loglevel_t, const char *, va_list);
Это файл заголовка.
Простой пример. Декларация:
typedef int myint.
Использование:
myint number = 7;
Минт является синонимом Int.
ваш пример
typedef void (*alpm_cb_log)(alpm_loglevel_t, const char *, va_list);
это указатель на функцию
(*alpm_cb_log)
Аргументы
(alpm_loglevel_t, const char *, va_list)
и ничего не возвращает.
void
Общее правило с использованием ЬурейеЕ, чтобы выписать декларацию, как вы объявляли переменные типов, которые вы хотите
Они выглядят странно, если вы их никогда не видели. Это typedef alpm_cb_log
для указателя на функцию, возвращающую void, принимая два или более аргумента: alpm_loglevel_t
, a const char *
и список переменных аргументов.
Вы можете использовать cdecl.org: http://cdecl.ridiculousfish.com/?q=void+%28*alpm_cb_log%29%28alpm_loglevel_t%2C+const+char+*%2C+va_list%29+
Он говорит:
объявить alpm_cb_log как указатель на функцию (alpm_loglevel_t, указатель на константный полукокс, va_list) возвращающийся недействительным
в этом случае, это typedef, а не декларация.
Он определяет alpm_cb_log
как тип для указателя на функцию, которая принимает аргументы alpm_loglevel_t, const char *, va_list
и возвращает void
.
создает alais alpm_cb_log, который является указателем на функцию, которая возвращает void и принимает три параметра. 1. alpm_loglevel_t 2. const char *. 3 список аргументов varaibale.
Loving, что веб-сайт. Спасибо за ссылку. – Vache
hehe nice website – Lefteris