问题描述
- typedef struct ast_config *func(...) 2C
- 怎么理解标题?怎么理解标题?怎么理解标题?怎么理解标题?怎么理解标题?
解决方案
typedef 是定义一个新的类型,Linux内核经常采用的方式,比如:typedef unsigned char U008; 这里是定义U008 为unsigned char类型。
其实typedef struct ast_config *func(...) 也是定义一种类型,只是这个类型是结构体指针而已,类型名为func 所以代码后面使用func 什么变量时其实
它就是代表一个函数,只是这个函数返回的是一个struct ast_config * 这样的一个结构体指针。 希望对你有所帮助!
解决方案二:
举个简单的例子吧,typedef int64_t ngx_atomic_int_t;像是这种形式,就是定义 ngx_atomic_int_t为int64_t ,在看下这种类型了,typedef void * ngx_buf_tag_t; 相比之前,这里多的是指针之外跟上面的是一样的, 那么接下来就是你想知道的了typedef char *(*ngx_conf_handler_pt)(ngx_conf_t *cfngx_command_t *dummy void *conf);这里就是函数指针,函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。
解决方案三:
把函数,定义为类型了
如今的编译器,尤其是C++已经支持了
返回类型为 struct ast_config *
解决方案四:
http://blog.sina.com.cn/s/blog_5e8facd20100qfpn.html
时间: 2024-11-02 13:58:29