[問題] 請問在c++呼叫fortran函式回傳值不對
C++的部份
main.cc:
================================================
#include <iostream>
extern "C"{
float lala_(float* y);
}
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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章