【发布时间】:2013-07-30 21:58:30
【问题描述】:
所以我必须处理一些结构数据,我必须以一种奇怪的方式压缩这些数据以用于 MPI_Send/Recv。
没有办法轻松地将它转换为指向我想要操作的已知类型的指针,然后沿着索引(因为我已经将结构压缩到连续数据中,不能假设任何关于对齐的事情),所以我必须通过指针算术来完成它。问题是,为了与 MPI 保持一致,此数据以 void* 形式给出,而 void* 上的指针运算是非法的。
我的问题主要是文体问题:有没有比强制转换为 char* 然后执行我的指针算术更好的方法? 采用 void* 时的效率考虑是什么,强制转换到 char*,对它做我的事情,然后再转回 void*?我无法想象指针转换会非常昂贵。
G'day,非常感谢。
【问题讨论】:
标签: c serialization mpi void-pointers pointer-arithmetic