java - 将包含 size_t 的结构从 Java 传递到 OpenCL

标签 java struct opencl lwjgl

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/

相关文章:

编译器: "error: dereferencing pointer to incomplete type" in thread application

c++ - 使用 AMD 显卡的 Eclipse-CDT (Windows) 中的 OpenCL

java - Android如何在加载新图像之前回收图像

java - 我可以在访问前一个 jPanel 的同时添加同一 jPanel 的全新实例吗?

java - Android UI - 如何在使用 TransitionDrawable 时动态更改图像

struct - 我如何声明我想要一个包含对实现特征的东西的引用的结构?

c - 在 C 中使用 MPI_Type_create_struct() 传输包含动态数组的结构

c++ - 在启用 OpenCL 选项的情况下使用 Tesseract 时出现 malloc 错误

python - OpenCV 3.2.0 windows,OpenCL 在 C++ 中显示设备,但在 python 中不显示

Java:由于方法调用,for 循环在所有迭代之前中断