Cast int to void* and void* to int for TMemoryStream->WriteBuffer (C++Builder XE7)



我使用TMemoryStream类及其WriteBuffer方法将数据写入流。我需要写入和读取int变量

void __fastcall WriteBuffer(const void *Buffer, int Count)
void __fastcall ReadBuffer(void *Buffer, int Count)

下面的代码是否正确?

:

int i = 5;
stream->WriteBuffer((void*)&i, sizeof(int));
阅读

:

stream->ReadBuffer((void*)&i, sizeof(int));

下面的代码是否正确?

是的。虽然类型强制转换是不必要的,因为任何指针都可以传递给void*(当然要考虑const的正确性):

int i = 5;
stream->WriteBuffer(&i, sizeof(int));

int i;
stream->ReadBuffer(&i, sizeof(int));

最新更新