有兩個函式檔案 a.c
b.cpp
b.cpp呼叫a.c的函式,且函式傳遞了4個引數,兩個指標和兩個形參,兩個指標都沒有問題,兩個形參一個是int型,一個是float型,int型也可以傳遞過去, float型無論如何也傳遞不過去。
想問是什么原因。
編譯或者編程的時候是不是有什么問題沒注意到,還是本來就是不能這樣干的。
uj5u.com熱心網友回復:
補充一下,剛剛試了一下double型別的,也是能傳的uj5u.com熱心網友回復:
不知道傳不過去是什么意思,但似乎有兩點比較特殊的地方:1、float型資料進行值傳遞時會自動轉換成double型
2、float和double型別理論上在賦值時整數要寫成10.0的形式,就是后面要有“.0”,但據說一些編譯器會自動轉換,不加“.0”也可以
uj5u.com熱心網友回復:
你在接收端用double型試試看什么效果uj5u.com熱心網友回復:
double是可以的,已經改成double了。 不能傳的意思是譬如:bfloat(float a){}
afloat()
{
float b=1.0;
bfloat(b);
}
bfloat(float a)
{
printf("%f",a);
}
其中afloat實在c語言里定義的函式,bfloat是在C++里定義的函式。
結果printf出來的值是0.
uj5u.com熱心網友回復:
宣告函式的時候不用加{}吧!uj5u.com熱心網友回復:
還是你函式代碼寫的問題吧,c和C++混編不存在這個問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/131780.html
標籤:基礎類
上一篇:廣州百田公司待遇薪酬怎樣?
