请教一个c语言的问题

[复制链接]
3056|9
 楼主| dian2008 发表于 2011-10-14 09:09 | 显示全部楼层 |阅读模式
typedef int *va_list[1];中的[1]有什么作用?

#define va_start(ap, parmN) (void)(*(ap) = __va_start(parmN))中的__va_start()是干什么的?是一个函数吗,在哪定义了?
Chiffre 发表于 2011-10-14 11:27 | 显示全部楼层
楼主,同问~!
不过,楼主你应该把整个程序都放进来人家才好给你解答,
不然只有几句程序,大家不知道怎么回答你呢~!我的理解~~~
xhtxzxw 发表于 2011-10-14 12:13 | 显示全部楼层
第一个问题:没有上下文,不好说。
第二个问题:属于函数指针+宏的问题??
声明va_start为一个函数指针??
1、va_start这个函数指针没有返回值: (void)(*.....)??
2、这个函数指针的所指函数调用了__va_start函数??
3、__va_start函数需要一个参数,由parmN替换这个参数??
4、__va_start有返回值,返回值放在ap指针所指的地方??
不用这个宏,对__va_start函数的调用方法就应该是:*(ap) = __va_start((parmN)??
用了这个宏,就可以这样调用__va_start函数:va_start(ap, parmN)??
看起来这样似乎更养眼一些??但实质上这绝对不是解决养眼的问题??操作系统里面需要这样写??为什么,一句两句解释......??
 楼主| dian2008 发表于 2011-10-14 12:30 | 显示全部楼层
这两句是在ads软件里的头文件stdarg.h里的两句宏定义
鹤舞翔空 发表于 2011-10-17 09:39 | 显示全部楼层
mingyanren 发表于 2012-12-24 16:49 | 显示全部楼层
mingyanren 发表于 2012-12-24 16:52 | 显示全部楼层
傲视苍穹的鹰 发表于 2013-8-11 19:23 | 显示全部楼层
求解释,不会啊,没搞明白,大神现身吧
Benzo 发表于 2013-8-12 16:37 | 显示全部楼层
zdhlixiang2006 发表于 2013-8-23 19:21 | 显示全部楼层
这些系统自带的文件没必要深究吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

15

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部