猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
C+中可变参数?
C+中可变参数?
如何编写接受可变数量参数的函数?这有可能吗?怎么可能?
江户川乱折腾
浏览 466
回答 3
3回答
炎炎设计
你可能不应该这样做,你也可以用一种更安全、更简单的方式去做你想做的事情。从技术上讲,要在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<<()(在流中)或默认参数等。这些都比较安全:编译器可以更多地了解您想要做的事情,因此在您将您的腿踢掉之前,有更多的情况可以阻止您。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C++
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续