我有一个问题,在一个文件中混合C字符串和fortran字符串。在一个文件中混合C字符串和fortran字符串
认为我与名字符串与固定长度的9打,我在一个.c文件定义的长度宏象
#define NAME_LEN 9
。
有一个现有的FORTRAN功能,让我们将其命名为fortran_function(char* name)
现在我已经打电话给在交流功能这个FORTRAN功能,让我们的名字
c_function(char name[]) {
fortran_function(name)
}
现在的问题是,我应该如何声明c_function签名?
c_function(char name[])
c_function(char name[NAME_LEN +1])
或
c_function(char name[NAME_LEN])
在什么情况下,我应该用9名的长度或10?
我的理解是,只要你传递了一个以空字符结尾的9个字符的字符串给c_function,所有的声明都是正确的。是对的吗?
任何其他问题应该放在这里?任何潜在的错误?
为了得到你应该张贴实际的Fortran程序接口,并提供一些完整的答案指示作为对的Fortran程序如何使用该参数。如果Fortran代码没有使用MSB指C互操作性功能,那么答案也可能编译器特有的。 – IanH 2014-01-30 03:17:30