我有一個這樣的雙重功能:爲什麼從雙重函數返回變成int?
double f(){
double value=0.1234;
return value;
}
在另一個函數I接收到的值和打印它。
printf("%f",f());
我希望看到打印的值爲0.1234,而打印爲0。 如果我投這樣的類型:
printf("%f",(double)f());
像-147923499.34一個很奇怪的值將被打印出來。
經過一番檢查(print sizeof)後,我發現f()的返回值是4字節,而double類型應該是8字節。
那麼,這是什麼根源呢?我怎樣才能從函數中返回正確的double值?
[似乎工作正常](http://ideone.com/IaZyOU)。請發佈最低限度的可編譯程序,以顯示您的錯誤。 –
也許你在調用'f()' –
@Alfie時沒有範圍的原型:這不是優先級的工作原理,如果它不是至少有兩個原因沒有編譯的話。 –