Re: [問題] 請問在c++呼叫fortran函式回傳值不對
搞定了...算是
應該是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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章