C++不定参数宏定义(#define XXX (...)表示什么意思)

文章展示了在C++中如何使用宏定义处理不定数量的参数,例如#defineLOG(...)printf(__VA_ARGS__)和#defineTADD(...)add(__VA_ARGS__)。LOG宏用于打印日志,TADD宏则用于调用不同参数数量的add函数,分别实现两数和与三数和。通过示例代码解释了这种技术在处理多态函数调用和类构造时的用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果遇到#define XXX (...)这样的宏定义,其实表示的是输入参数不定的情况,这里直接给出实例来说明:

#include <stdio.h>
using namespace std;
#define LOG(...) printf(__VA_ARGS__)
#define TADD(...) add(__VA_ARGS__)
int add (int a, int b) {
    return a + b;
}
int add (int a, int b, int c) {
    return a + b + c;
}
int main() {
    // test1
    LOG("This is a test %d, %d, %d \n", 1, 2, 3);
    printf("result1 is %d\n", TADD(1,2));
    printf("result1 is %d\n", TADD(1,2,3));
    return 0;
}

结果为:

This is a test 1, 2, 3 
result1 is 3
result1 is 6

可以看到这是专门用来处理输入参数不定的宏定义情况,可用于多种情况(多态函数调用,多个类构造函数实例化等)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值