由于没有标准接口,因此不推荐在 C 与 Fortran 例程间传递字符串。不过,请注意以下方面:
所有 C 字符串均按引用传递。
Fortran 调用会为参数列表中具有字符类型的每个参数传递一个附加参数。此额外参数给出串长度,它等同于按值传递的 C 长整数。(这要依具体实现而定。)额外的串长度参数出现在调用中的显式参数之后。
下例展示了具有字符串参数的 Fortran 调用及其等同的 C 调用:
表 11–5 传递 CHARACTER 串
Fortran 调用: |
等价的 C 调用: |
||
---|---|---|---|
|
|
如果在被调用例程中不需要串长度,则可以忽略额外的参数。但要注意,Fortran 不会自动以 C 期望的显式空字符来终结字符串。该终结符必须由调用程序添加。
字符数组调用与单个字符变量调用看起来一样。会传递数组的起始地址,所使用的长度是数组中单个元素的长度。