使用MPI发送size_t类型数据

时间:2016-11-25 15:05:47

标签: c mpi size-t

在MPI中发送size_t类型号码最安全的方法是什么?例如,我确信将它作为MPI_INT盲目发送是安全。 MPI_LONG会一直有效吗?

1 个答案:

答案 0 :(得分:6)

使用宏怎么样?

#include <stdint.h>
#include <limits.h>

#if SIZE_MAX == UCHAR_MAX
   #define my_MPI_SIZE_T MPI_UNSIGNED_CHAR
#elif SIZE_MAX == USHRT_MAX
   #define my_MPI_SIZE_T MPI_UNSIGNED_SHORT
#elif SIZE_MAX == UINT_MAX
   #define my_MPI_SIZE_T MPI_UNSIGNED
#elif SIZE_MAX == ULONG_MAX
   #define my_MPI_SIZE_T MPI_UNSIGNED_LONG
#elif SIZE_MAX == ULLONG_MAX
   #define my_MPI_SIZE_T MPI_UNSIGNED_LONG_LONG
#else
   #error "what is happening here?"
#endif

然后在您的代码中,每次要传输my_MPI_SIZE_T类型的数据时,都会使用size_t作为数据类型。