作者HomeboyWu (William)
看板Programming
标题Re: [问题] 请问在c++呼叫fortran函式回传值不对
时间Tue Jul 17 14:04:40 2007
搞定了...算是
应该是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