在 fortran 中,我可以将字符串声明为:
character*80 mystring
然后将其发送为:
call MPI_Send(mystring,len(mystring),MPI_CHARACTER,...,ierr)
或者,我可以将我的字符串声明为一个字符数组(更符合 C 中的传统方式)
character mystring(80)
然后将其发送为:
call MPI_Send(mystring,80,MPI_CHARACTER,...,ierr)
我的理解是这两个调用在调用 C 函数时会有不同的接口。(前者通常由编译器通过按值传递一个包含字符串长度的附加参数来实现,而后者不传递该参数)。那么,MPI 实现(通常用 C 编写)如何知道其中的区别?