回答編集履歴
2
Rustフォーラムの類似質問を追加
answer
CHANGED
@@ -15,4 +15,7 @@
|
|
15
15
|
printf(fmt.as_c_str().as_ptr(), i, j);
|
16
16
|
}
|
17
17
|
}
|
18
|
-
```
|
18
|
+
```
|
19
|
+
|
20
|
+
似たような質問をRustのフォーラムで見つけたので貼っておきます。
|
21
|
+
[How to wrap `printf` in libc properly?](https://users.rust-lang.org/t/how-to-wrap-printf-in-libc-properly/20370)
|
1
ラッパコードへのリンクを追加
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
そのcrateには
|
1
|
+
そのcrateには[void*をva_listへ変換するC言語のラッパーコード](https://github.com/derekdreery/alpm/blob/master/printf/src/printf_wrapper.c)が含まれていて、Rust側ではそのラッパを呼ぶことでprintfを呼んでいます。したがって、そのcrateのprintfのシグネチャはそもそも本来のprintfとは異なるものです。
|
2
2
|
可変長引数を渡したいなら、`...`を使うことで可能になります。
|
3
3
|
|
4
4
|
```rust
|