LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1006|回复: 10

# define DMDEBUG(f, arg...) do {} while (0)

[复制链接]
发表于 2007-5-17 17:06:24 | 显示全部楼层 |阅读模式
arg...三个点是什么意思,可变参数吗?
 楼主| 发表于 2007-5-17 17:17:21 | 显示全部楼层

# define DMDEBUG(f, arg...) do {} while (0)

arg...三个点是什么意思,可变参数吗?
回复 支持 反对

使用道具 举报

发表于 2007-5-17 17:44:23 | 显示全部楼层
yes...
回复 支持 反对

使用道具 举报

发表于 2007-5-18 08:55:06 | 显示全部楼层
这个在gcc下是支持的,不知道是不是标准。
回复 支持 反对

使用道具 举报

发表于 2007-5-18 21:49:53 | 显示全部楼层
C标准规定的。可以通用。
printf() , scanf() 就是这样的。
回复 支持 反对

使用道具 举报

发表于 2007-5-18 22:15:01 | 显示全部楼层
函数中的 ... 和 #define 中的 ... 虽然功能类似,但毕竟还不是一个东西
回复 支持 反对

使用道具 举报

发表于 2007-5-18 23:10:18 | 显示全部楼层
怎么讲?? 有什么区别?
回复 支持 反对

使用道具 举报

发表于 2007-5-18 23:17:32 | 显示全部楼层
do {} while (0)

为什么要这么写呢, 写这个有什么意义?
回复 支持 反对

使用道具 举报

发表于 2007-5-19 10:16:20 | 显示全部楼层
do{}while(0) 相当于目前不需要实现或没有实现的placeholder,或者不同ARCH下的专有函数。
回复 支持 反对

使用道具 举报

发表于 2007-5-19 13:35:49 | 显示全部楼层
Post by newroot
怎么讲?? 有什么区别?

函数中的可变参数是可以对每一个单独访问的,而 #define 中的是作为一个整体出现的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表