2014-03-13 66 views
1

我剛開始學習C和從一本書的一個項目它給了我這樣的代碼:在C中,爲什麼我需要返回華氏?

float fahrenheitFromcelcius (float celcius){ 
    float fahrenheit = celcius *1.8 +32.0; 
    printf("%f celcius is %f fahrenheit\n", celcius , fahrenheit); 
    return fahrenheit; 
} 

爲什麼我需要返回華氏溫度。我以爲你回來檢查,如果一切正常或停止功能

+2

因爲該函數的重點是在給定的攝氏溫度下得到華氏溫度值?有時候你想實際使用從函數返回的數據,也許會把它寫到屏幕上。如果你什麼都沒有返回,數據就會丟失。 –

+0

在某種程度上有兩類函數返回值。在一種情況下,函數返回成功或失敗(可能帶有各種失敗代碼)。在另一種情況下,它返回一個值,失敗不是一種可能性,或者由其他機制來表示。最後,有混合返回值。例如,使用'int'函數,正值可能是結果,0表示什麼都沒有完成,負值表示各種類型的失敗。由於浮點數值不一定是確切的,因此有一個'float'函數返回失敗代碼有點尷尬 - 所以它可能是一個值。 –

回答

6

發佈的代碼片段是所謂的「功能」。您可以將此功能視爲攝氏溫度到華氏度的機器。

您給機器提供一個浮點值(在功能中稱爲celsius)。機器做了一些計算,並且吐出一個浮點值fahrenheit

這個功能的實際使用量應該是這樣的:

float tempInCelsius = 0.0; 
float tempInFahrenheit = fahrenheitFromCelcius(tempInCelsius); 

當那第二行是執行,我們調用了fahrenheitFromCelcius功能。計算是根據我們通過的值完成的(tempInCelsius,對於函數而言,簡單地稱爲celsius)。計算完成後,函數「返回」計算出的值並將其分配給我們的變量tempInFahrenheit

+0

除此之外,通常你的功能不會打印任何東西。我認爲OP很困惑,因爲他的目標是打印結果,所以他想知道爲什麼需要返回,因爲目標已經達到。答案是,這是一個更好的功能設計,只需做一件事;轉換;然後來電者可以決定是將其打印出來還是採取其他措施。 –