我正在编译Func
到静态库,并在C程序中使用它。我收到一条消息:Output buffer f20 has type int32 but elem_size of the buffer passed in is 1 instead of 4
。在这种情况下,我无法弄清楚我做错了什么。这里的Func
:输出缓冲区的类型为int32,但传递的缓冲区的elem_size为1而不是4
Var x, y, c;
Func out;
out(c, x, y) = cast<uint8_t>(255);
如果我理解正确,已解析的输出类型应为uint8_t
。下面是我如何在C程序中创建我的缓冲区:
buffer_t buffer;
buffer.extent[0] = 4;
buffer.extent[1] = width;
buffer.extent[2] = height;
buffer.elem_size = 1;
buffer.host = data;
buffer.stride[0] = 1;
buffer.stride[1] = 4;
buffer.stride[2] = stride;
fill_buffer(&buffer);
缓冲区中确实含有uint8_t
价值观和我设置elem_size
为1,所以我不知道如何使卤化物使用它作为8位值..