2012-02-17 48 views
4

我是C新手,这个typedef看起来有点奇怪。有人可以解释它的作用吗?这个typedef是什么意思?

typedef void (*alpm_cb_log)(alpm_loglevel_t, const char *, va_list); 

它在一个头文件中。

回答

4

一个简单的例子。 声明:

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的一般规则是写出来的声明,就好像 你声明的变量类型要

3

这些看起来很奇怪,如果你以前从未见过它们。这是一个typedef alpm_cb_log,用于指向返回void的函数的指针,其中包含两个或更多参数:一个alpm_loglevel_t,一个const char *和一个可变参数列表。

4

它将alpm_cb_log定义为指向函数的指针的类型,该函数接受参数alpm_loglevel_t, const char *, va_list并返回void

2

它创建了alais alpm_cb_log,它是一个返回void并带有三个参数的函数的指针。 1.一个alpm_loglevel_t 2.常量字符*。 3一个varaibale参数列表。