我有一段用C++编写的代码,需要它在C中.我转换了大部分代码,但我无法弄清楚如何将函数中的C++ pass-by-reference转换为C代码,即
例:
int& a;
Run Code Online (Sandbox Code Playgroud)
它在某些函数中用作输入变量:
void do_something(float f, char ch, int& a)
Run Code Online (Sandbox Code Playgroud)
当我用CI编译它时编译错误.什么是在C中用引用替换传递的正确方法?
在C中执行此操作的方法是通过指针传递:
void do_something(float f, char ch, int* a)
Run Code Online (Sandbox Code Playgroud)
当使用in do_something而不是
void do_something(float f, char ch, int& a)
{
a = 5;
printf("%d", a);
}
Run Code Online (Sandbox Code Playgroud)
你现在需要解除引用 a
void do_something(float f, char ch, int* a)
{
*a = 5;
printf("%d", *a);
}
Run Code Online (Sandbox Code Playgroud)
在打电话时do_something你需要取一个传递给你的地址,而不是
int foo = 0;
d_something(0.0, 'z', foo);
Run Code Online (Sandbox Code Playgroud)
你需要这样做:
int foo = 0;
d_something(0.0, 'z', &foo);
Run Code Online (Sandbox Code Playgroud)
获取foo的地址(即指针).
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |