在Rust中无法做的事情:可变参数函数

我爱Rust,希望它变得更好。 开发团队知道所有提出的问题。 我只是想引起大家的讨论和热情,以使一种好的语言变得更好。

#![feature(c_variadic)]
#[no_mangle]
pub unsafe extern "C" fn func(fixed: u32, mut args: ...) {
let x: u8 = args.arg();
let y: u16 = args.arg();
let z: u32 = args.arg();
println!("{} {} {} {}", fixed, x, y, z);
}

结果(编译时错误):

 error[E0554]: #[feature] may not be used on the stable release channel
|
1
| #![feature(c_variadic)]
| ^^^^^^^^^^^^^^^^^^^^^^^
 error: aborting due to previous error(s) 

Rust具有可变的宏。 Rust可以使用C可变参数函数。 RFC 2137仅涉及从Rust内部定义可变参数函数的情况。 这很难考虑到垃圾回收和生存期,因此此功能可能仅限于地面类型或类似的折衷方案。 也许这只是与宏重叠,而该功能是不必要的。

From: https://hackernoon.com/things-you-cant-do-in-rust-variadic-functions-389df3bd91e7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值