我见过这种类型 void[] 在D文档和函数签名中的一些地方使用。这是什么意思?
我搜索了文档和Google中的数组部分,但没有找到任何结论。我发现所有数组都可以隐式转换为 void[] 类型。它只是一个无类型的数组吗?
我见过这种类型 void[] 在D文档和函数签名中的一些地方使用。这是什么意思?
我搜索了文档和Google中的数组部分,但没有找到任何结论。我发现所有数组都可以隐式转换为 void[] 类型。它只是一个无类型的数组吗?
void[] 只是一系列的东西。 in void[] 是一个方便的签名,只是将字节写入文件或其他东西,因为它将接受任何类型的数组 - void 意思是这种类型并不重要 in 意思是你没有意义修改或存储它,因此你也可以接受const或不可变数组。
使用一个 void[],你必须首先把它投射到别的东西,通常, ubyte[],因此元素具有允许您索引它的具体大小。 void[].length 作为数组中的总字节数给出,所以如果你只是将一个指针和数据长度传递给一个函数(比如操作系统级文件写入,例如Linux的 write 系统调用),传递 arr.ptr, arr.length 将得到这些字节,而不关心它们代表什么。
void[] 只是一系列的东西。 in void[] 是一个方便的签名,只是将字节写入文件或其他东西,因为它将接受任何类型的数组 - void 意思是这种类型并不重要 in 意思是你没有意义修改或存储它,因此你也可以接受const或不可变数组。
使用一个 void[],你必须首先把它投射到别的东西,通常, ubyte[],因此元素具有允许您索引它的具体大小。 void[].length 作为数组中的总字节数给出,所以如果你只是将一个指针和数据长度传递给一个函数(比如操作系统级文件写入,例如Linux的 write 系统调用),传递 arr.ptr, arr.length 将得到这些字节,而不关心它们代表什么。