这段代码是什么意思

gxx2019 2009-07-21 09:48:53
int iXOff, iYOff, iSample;

iSample = 0;

for( iYOff = 0; iYOff < nYSize; iYOff++ )
{
for( iXOff = 0; iXOff < nXSize; iXOff++ )
{
unsigned char *pabyData;

pabyData = pabySrc + iYOff * nLineOffset + iXOff * nPixelOffset;

if( nSampleFormat == SAMPLEFORMAT_UINT && nPixelBytes == 1 )
{
padfSamples[iSample++] = *pabyData;
}
else if( nSampleFormat == SAMPLEFORMAT_UINT && nPixelBytes == 2 )
{
padfSamples[iSample++] = ((uint16 *) pabyData)[0];
}
else if( nSampleFormat == SAMPLEFORMAT_UINT && nPixelBytes == 4 )
{
padfSamples[iSample++] = ((uint32 *) pabyData)[0];
}
else if( nSampleFormat == SAMPLEFORMAT_INT && nPixelBytes == 2 )
{
padfSamples[iSample++] = ((int16 *) pabyData)[0];
}
else if( nSampleFormat == SAMPLEFORMAT_INT && nPixelBytes == 32 )
{
padfSamples[iSample++] = ((int32 *) pabyData)[0];
}
else if( nSampleFormat == SAMPLEFORMAT_IEEEFP && nPixelBytes == 4 )
{
padfSamples[iSample++] = ((float *) pabyData)[0];
}
else if( nSampleFormat == SAMPLEFORMAT_IEEEFP && nPixelBytes == 8 )
{
padfSamples[iSample++] = ((double *) pabyData)[0];
}
}

pabySrc 是形参传过来的值,为unsigned char*,padfSamples为double*。((xx*)pabyData)[0]是什么意思啊?
...全文
122 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
padfSamples[iSample++] = ((uint16 *) pabyData)[0];

这种强制转换很多是不能成功的,得看编译器了。
steven_007 2009-07-21
  • 打赏
  • 举报
回复
padfSamples[iSample++] = ((double *) pabyData)[0];
pabyData 作为指针传给padfSamples[iSample++]

padfSamples 里面存放的是一个个地址。
zhangxfeng112 2009-07-21
  • 打赏
  • 举报
回复
padfSamples[iSample++] = ((double *) pabyData)[0];
这句话的意思是把pabyData指向的8个字节,当成一个double类型传给padfsamples[iSample]
然后iSample++;
t1397018 2009-07-21
  • 打赏
  • 举报
回复
((xx*)pabyData)强制装换成xx形的指针
zhangxfeng112 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 steven_007 的回复:]
padfSamples[iSample++] = ((double *) pabyData)[0];
pabyData 作为指针传给padfSamples[iSample++]

padfSamples 里面存放的是一个个地址。
[/Quote]

瞎扯蛋,无人子弟。

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧