2

我想知道为什么的签名MPI_Send如下:

int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag,
  MPI_Comm comm)

第一个参数是类型void *。为什么第一个参数是 typevoid *而不是const void *. 会MPI_Send修改源码吗?

我问这样的问题是因为我将 MPI 与 C++ 一起使用并传递给类型message.c_str()为 MPI_Send 的函数。这样,编译器就会抱怨。messagestd::string

4

1 回答 1

8

MPI_Send 会修改源吗?

不,不会的。

我的问题是为什么第一个参数的类型是 void * 而不是 const void *。

糟糕的设计。

MPI 的第一个版本是在 1989 年 C 语言标准化之后发布的,并const作为标准提供。

为未来的 MPI-3 提交并接受了添加缺失const功能和其他 MPI 功能的提案。MPI_Send

https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/140

于 2013-07-21T13:46:03.153 回答