一句看不懂的代码,求解释
目标码神 2011-12-19 01:56:19 //static
inline void*& SimpleSegregatedAllocator::nextOf(void* const pAddr)
{
return *(static_cast<void**>(pAddr));
}
请问这代码是何用意?nextOf函数有什么用处?
nextOf函数这样被调用的
void* SimpleSegregatedAllocator::segregate(void* pChunk, size_t nChunkSize,
size_t uAllocSize, void* pEndNode )
{
char* pOld = static_cast<char*>(pChunk) +
((nChunkSize - uAllocSize)/uAllocSize ) * uAllocSize;
nextOf(pOld) = pEndNode;///pOld point to the end node
//only one partition
if(pOld == pChunk)
{
return pChunk;
}
for(char* pIter = pOld - uAllocSize; pIter != pChunk;
pOld = pIter,pIter -= uAllocSize)
{
nextOf(pIter) = pOld;
}
nextOf(pChunk) = pOld;
return pChunk;
}