首页 > 解决方案 > 映射到 C 数据类型的 C 自定义数据类型分组在单个结构下

问题描述

我正在实现一个消息传递接口,其标准的条件之一是映射到 C 数据类型的自定义 MPI 数据类型。例如MPI_INT映射到 C int

很简单,我想做:

typedef int MPI_INT;
typedef short int MPI_SHORT;
...
...
...
etc

但我希望所有这些自定义数据类型都属于更通用的数据类型,称为 MPI_Datatype,这样我就可以制作一个函数原型,例如

MPI_Send(void*, MPI_Datatype)

其中 MPI_Datatype 是 MPI_INT、MPI_SHORT 等之一

我不太确定如何在 C 中做到这一点,所以如果有人有一个很棒的想法。

标签: coop

解决方案


您可以为每种数据类型分配一个唯一的 ID 号,并让消息传递线的双方同意。显然您无法比较数据类型,即if (data_type == MPI_INT),但您可以比较 ID。


推荐阅读