为了账号安全,请及时绑定邮箱和手机立即绑定

C+中可变参数?

C+中可变参数?

C++
江户川乱折腾 2019-06-14 16:23:33
C+中可变参数?如何编写接受可变数量参数的函数?这有可能吗?怎么可能?
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

你可能不应该这样做,你也可以用一种更安全、更简单的方式去做你想做的事情。从技术上讲,要在C中使用可变数量的参数,就需要包含stdarg.h。从那你会得到va_list类型以及在其上操作的三个函数称为va_start()va_arg()va_end().

#include<stdarg.h>int maxof(int n_args, ...){
    va_list ap;
    va_start(ap, n_args);
    int max = va_arg(ap, int);
    for(int i = 2; i <= n_args; i++) {
        int a = va_arg(ap, int);
        if(a > max) max = a;
    }
    va_end(ap);
    return max;}

如果你问我,这真是一团糟。它看起来很糟糕,不安全,而且充满了技术细节,这些细节与你想要实现的目标毫无关系。相反,考虑使用重载或继承/多态性、构建器模式(如operator<<()(在流中)或默认参数等。这些都比较安全:编译器可以更多地了解您想要做的事情,因此在您将您的腿踢掉之前,有更多的情况可以阻止您。


查看完整回答
反对 回复 2019-06-14
  • 3 回答
  • 0 关注
  • 465 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信