CL12.clCreateImage()
的论点之一是 ByteBuffer
包含这个struct 。我将使用OpenCL kernel arguments中描述的方法传递结构,但不确定对 size_t
类型的参数使用什么。从Java,当我将参数放入 ByteBuffer
中时,我应该使用 int
(有符号 32 位)如果我使用 32 位系统或 long
(有符号 64 位)如果我使用的是 64 位?
最佳答案
size_t 类型是“unsigned int”。你绝对可以使用int类型,但要确保它不是负数,否则没有意义。
在考虑上述情况时,您不应该担心 32 和 64 位系统,并且不需要使用长
所以你可以做类似的事情
int param = value; //this is the value to pass
if (param >= 0) {
pclFunc((size_t)param)
} else {
//see how you want to handle this
}
关于java - 将包含 size_t 的结构从 Java 传递到 OpenCL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14203128/