我是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的一般规则是写出来的声明,就好像 你声明的变量类型要
这些看起来很奇怪,如果你以前从未见过它们。这是一个typedef alpm_cb_log
,用于指向返回void的函数的指针,其中包含两个或更多参数:一个alpm_loglevel_t
,一个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,指针为const char,va_list的)在这种情况下返回void
,它是一个typedef,而不是一个声明。
它将alpm_cb_log
定义为指向函数的指针的类型,该函数接受参数alpm_loglevel_t, const char *, va_list
并返回void
。
它创建了alais alpm_cb_log,它是一个返回void并带有三个参数的函数的指针。 1.一个alpm_loglevel_t 2.常量字符*。 3一个varaibale参数列表。
爱该网站。感谢您的链接。 – Vache 2012-02-17 04:17:22
呵呵不错的网站 – Lefteris 2012-02-17 04:19:15