什么相当于C </byte>中的C#List <byte>

时间:2015-02-09 14:38:26

标签: c# c

如果我有C#方法,将List作为一个参数,例如这个

private bool ReadResponse(HidDevice device, List<byte> response, int length){
    //do something
} 

我需要将其重新编写为C.使用unsigned char *pointer作为参数是正确的方法吗?这是我现在拥有的当前C函数签名。在调用函数时,我将传递unsigned char data[64]作为第一个参数。

bool ReadReport(unsigned char *response, int length){
    // do something 
}

最终用途是我需要稍后将所有读取的字节存储到字符串中。

2 个答案:

答案 0 :(得分:1)

如果你有一个带有

签名的功能
bool ReadReport(unsigned char *response, int length)

您需要将其称为

ReadReport(data, len);
            ^
            |    //it expects unsigned char *, not unsigned char

答案 1 :(得分:0)

确实byte的正确类型是使用unsigned char,或者在您的情况下使用unsigned char *response。有一点不同,在C#中你可以动态调整大小/添加新元素到列表,你不能在C中这样做;如果是这种情况,您可能需要使用realloc。 (或者实现类似动态的vector)