我有一個問題,在一個文件中混合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