求带参数的宏定义详解!

[复制链接]
查看11 | 回复1 | 2010-5-14 12:08:42 | 显示全部楼层 |阅读模式
可以传递参数的宏定义,哪位高手给个详解,谢谢!
#define d_debug_at( domain, x... ) do {} while (0)
#define D_ASSUME(exp)
\

do {

\

if (!(exp))
\

direct_assumption( #exp, __FUNCTION__, __FILE__, __LINE__ );
\

} while (0)
void direct_assumption( const char *exp,

const char *func,

const char *file,

int
line );
感谢大家的回答,但是我想问的是这几个!
#exp, __FUNCTION__, __FILE__, __LINE__这种参数怎么解释
期待高手的出现!!!!

回复

使用道具 举报

千问 | 2010-5-14 12:08:42 | 显示全部楼层
//功能类似函数,但实质是替换//例如add(a,b)和ad(a,b)如下#include#define add(a,b) (a*b)#define ad(a,b)(a)*(b)void main(){int c=add(1,2);//调用第一个宏,1*2的值即2 int d=add(1+1,2); //执行1+1*2而不是(1+1)*2所以值为3 //解决方法 int e=ad(1+1,2);//调用第二个宏,结果为4 printf("%d,%d,%d\n",c,d,e);}
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行