Пользовательские типы данных C, сопоставленные с типами данных C, сгруппированными под одной структурой - PullRequest
1 голос
/ 10 мая 2019

Я реализую интерфейс передачи сообщений, и одной из квалификаций его стандартов являются пользовательские типы данных 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, так что если у кого-то есть идея, которая будет превосходной.

1 Ответ

2 голосов
/ 10 мая 2019

Вы можете назначить уникальный идентификационный номер каждому типу данных, и обе стороны линии передачи сообщений согласятся с этим.Очевидно, вы не можете сравнивать типы данных, например, if (data_type == MPI_INT), но вы можете сравнивать идентификаторы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...