c++ - 在 Metal 着色器代码中,如何定义函数的输入/输出参数变量?

标签 c++ ios objective-c metal metalkit

我有这个功能:

void myFunct(const int A, ?out? int B){B = B + A;} 

如何声明 B 以便函数可以更新其值并将其返回给调用者?

最佳答案

Metal 是一种基于 C++ 的编程语言,允许您将指针传递给函数。为此,只需将函数参数声明为指针类型即可。

void myFunct(const int A, device int *B)
{
   *B = *B + A;
} 

device int *C = 0;
myFunct(1, C);

您还可以通过引用传递变量:

void myFunct(const int A, device int &B)
{
   B = B + A;
} 

device int *C = 0;
myFunct(1, *C)

或引用指针:

void myFunct(const int A, device int *&B)
{
   *B = *B + A;
} 

device int *C = 0;
myFunct(1, C);

关于c++ - 在 Metal 着色器代码中,如何定义函数的输入/输出参数变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59017405/

相关文章:

ios - UITableViewCell 子类?

xcode - 使用 xcode 调试 "failed to launch in time"

ios - 在 TableView objective-c 中的按钮上添加操作

ios - 如何将NSDictionary数据添加到NSMutableArray?

ios - 如何在 iOS 中编写异步线程类?

C++通过for循环插入数组

c++ - C++ 数组是通过引用传递还是通过指针传递?

c++ - 从 Windows 编辑控件的格式中删除逗号的方法? (C++)

c++ - 为什么下面的代码给我一个关于抽象类的错误?

objective-c - 自定义 NSTableView 行背景