您的位置:首页 > 其它

可变参数宏

2016-04-11 18:31 155 查看
#define debug(format, ...) fprintf(stderr, format, ##__VA_ARGS__)

... 指可变参数。这类宏在被调用时,它(这里指‘…')被表示成零个或多个符号,包括里面的逗号,一直到到右括弧结束为止。当被调用时,在宏体(macro body)中,那些符号序列集合将代替里面的__VA_ARGS__标识符。当零个参数时,##会把前面多余的逗号去掉。

eg:

int main()
{
debug("a = %d", 10);    //扩展为fprintf(stderr, "a = %d", 10);
debug("good");          //扩展为fprintf(stderr, "good");
return 0;
}

__FILE__ 代表当前文件名

__LINE__ 当前行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: