其他分享
首页 > 其他分享> > 在C函数中跳过一些参数?

在C函数中跳过一些参数?

作者:互联网

我有一个C函数有5个参数,所有参数都有默认值.如果我传入前三个参数,程序将为最后两个参数分配一个默认值.有没有办法传递3个参数,并在中间跳过一个,给出值,比如第一,第二和第五个参数?

解决方法:

不是直接的,但你可以用std :: bind做一些事情:

int func(int arg1 = 0, int arg2 = 0, int arg3 = 0);

// elsewhere...
using std::bind;
using std::placeholders::_1;
auto f = bind(func, 0, _1, 0);

int result = f(3); // Call func(0, 3, 0);

缺点当然是您要重新指定默认参数.我相信别人会有一个更聪明的解决方案,但如果你真的很绝望,这可能会奏效.

标签:default-arguments,c,arguments,optimization
来源: https://codeday.me/bug/20190927/1824353.html