Re: [問題] 請問在c++呼叫fortran函式回傳值不對

看板Programming作者 (William)時間18年前 (2007/07/17 14:04), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
搞定了...算是 應該是64bit機器的問題 原本的code用32bit機器是ok的 ※ 引述《HomeboyWu (William)》之銘言: : C++的部份 : main.cc: : ================================================ : #include <iostream> : extern "C"{ : float lala_(float* y); ^^^^^改用double : } : int main() : { : float a = 3; : std::cout<< lala_(&a) << std::endl; : return 0; : } : ================================================ : FORTRAN的部份 : test.f: : ================================================ : real function lala(y) : real y : lala=y**2 : write(*,*),lala : return : end : ================================================ : 編譯 : g77 -c test.f : g++ main.cc test.o -lg2c : ./a.out : 結果 : 9. -> fortran裡面write出來的 : 0 -> c++裡面cout : 可是這兩個東西應該一樣是9的啊 : 我是不是漏了什麼東西? : 請指點一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.101.46
文章代碼(AID): #16d5lvB9 (Programming)
文章代碼(AID): #16d5lvB9 (Programming)