我有一些我继承的旧代码正在维护并希望尽可能少地更改。它不能用较新的编译器编译。
代码还有更多内容,但我认为基本上这个想法(不管有多糟糕)是将 void* 传递给任意记录大小的记录表的开头。我不想在此功能之外进行更改,因为它变得丑陋。我想我只想转换为 unsigned char* 并进行加法,然后再转换回 void* 但我无法确定正确的转换等。
有什么建议么?
这是原始代码:
foo(const void* recordArrayBasePtr ,ubin32 sizeOfStruct)
{
void * recordPtr;
int row = 9; //for example
recordPtr = const_cast<void *>( recordArrayBasePtr ) + sizeOfStruct * row;
}