我正在实现一个消息传递接口,其标准之一是定制MPI数据类型,该映射映射为C数据类型。例如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语言做到这一点,所以如果有人有超棒的想法。
答案 0 :(得分:2)
您可以为每种数据类型分配一个唯一的ID号,并使消息传递行的两端对此都表示同意。显然,您无法比较数据类型,即if (data_type == MPI_INT)
,但可以比较ID。