0

在 GigE SDK C++ 中,规范注释 GetDataPointer() 的定义如下:

PvUInt8 * PvBuffer::GetDataPointer  (   )   
Get the buffer's data pointer. 
Const version.
Returns:
A pointer to the memory pointer. 

我在我的程序中使用了这个函数(请参见最后一行):

PvBuffer * lBuffer = new PvBuffer();
// Create the Data (buffers are created as images, GetImage() is valid on a fresh buffer)
lBuffer->GetImage()->Alloc( 1224, 1029, PvPixelMono8 );
PvUInt8 *lDataBuffer = lBuffer->GetDataPointer(); //use in actual code 

问题是关于 PvUInt8;查看定义,这是缓冲区中数据的类型还是指针的类型,它总是可以是 4 字节(在 32 位机器上)或 8 字节(在 64 位机器上)。

4

1 回答 1

1

从提供的信息来看,PvUInt8似乎是unsigned char(又名“一个字节”)的别名。这意味着它PvUInt8 *只是一个字节指针。 sizeof(PvUInt8)应该是1,并且sizeof(PvUInt8 *)应该是执行环境中指针的本机大小(例如,在 32 位系统上为 4,在 64 位系统上为 8,等等)。

于 2012-07-05T10:31:16.630 回答