[英]not possible to pass a float to another function?
我想將浮點數傳遞給另一個函數。
int main()
{
float start=0;
float step=0.1;
int number=10;
fun(start,step,number)
}
fun(float star, float ste, int numbe)
{
//here I get "star = 0", "numbe = 10", but "ste = -1.084264e-19"
}
這是怎么了
謝謝
只要提供原型或在首次使用該功能之前將定義移至某個功能,就可以肯定將float
傳遞給該功能。
原型(也稱為前向聲明)如下所示:
void fun(float star, float ste, int number);
在較大的項目中,原型進入頭文件。
注意:不要忘記在函數定義之前添加void
。 否則,編譯器會將您的函數視為返回int
。
如果省略原型,則編譯器將默認使用舊的K&R C規則來決定如何將參數傳遞給函數。 結果是您看到的異常行為,並希望還有編譯器警告。
在調用函數之前,您需要正確的函數聲明:
加:
void fun(float star, float ste, int numbe);
在main
聲明之前,還可以在fun
函數定義中添加void
返回類型。
您需要在main
函數之前聲明該函數。 嘗試這個:
void fun(float star, float ste, int number);
int main()
{
float start=0;
float step=0.1;
int number=10;
fun(start,step,number);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.