2016-11-25 9 views
2

MPI에서 size_t 유형 번호를 보내는 가장 안전한 방법은 무엇입니까? 예를 들어, 나는 그것이 이 아니라고 확신합니다.은 맹목적으로 MPI_INT로 보내면 안전합니다. MPI_LONG은 항상 작동합니까?MPI로 size_t 유형 데이터 보내기

답변

4

매크로 사용은 어떻게됩니까?

#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 

그런 다음 코드에서, 당신은 데이터 형식으로는 유형 size_t의 데이터를 전송할 때마다 my_MPI_SIZE_T을 사용합니다.