Fortran 和 C 混合编程

由于 GNU 的 Fortran 和 C 语言二者的函数彼此可以直接相互调用,所以混合编程可以非常容易地实现。确保函数调用时传递的参数类型正确,保证数据能在两种语言中正确的传输并解读。
明确两种语言机制的区别,才能正确的传递参数:

  1. Fortran按地址传递参数;C按内容传递参数,可通过指针来实现按地址传递参数,若变量的类型是数组或字符串,则不需要指针,因为他们本来就相当于指针呀~
  2. Fortran的多维数组是按照先低维后高维的顺序存放在内存的;C正好相反,注意下标需要翻转。
  3. Fortran 的字符串的长度是固定的,C传给 Fortran的字符串没有办法确定长度(亲测确实如此,所以输出字符串的时候也需要知道长度,否则不知道要输出到哪里结束),必须将字符串长度作为参数同时传递;C 的字符串长度是由 null 字符( ascii 码为“0”字符)的位置决定的,但要将该字符串格式化为 C 语言标准的字符串,我们必须在实际字符串结束的位置插入一个 ascii 码为“0”字符作为结束标志。
  4. Fortran的integer == C的int (32位,4字节) ;Fortran的real== C的 float(32位,4字节)

你可能感兴趣的:(Fortran)