宣言、型、戻り値
メニューを表示するにはスワイプしてください
前回のレッスンでは、関数の基本構造について学びました。
main.c
123456func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }
宣言
関数を利用する前に、必ず宣言する必要があります。宣言前に関数を呼び出すとエラーになります。
関数の宣言は、定義と同時に行うこともできます(上記の例参照)。また、プロトタイプを使って宣言する方法もあり、このセグメントの最後で補足として説明します。
関数の型と戻り値
関数の型は、関数の結果のデータ型をコンパイラに伝える役割を持つ。例えば、関数が2つの整数の合計を計算する場合、結果として整数型が期待される。
main.c
12345678int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }
データ型と戻り値の型が一致しない場合、関数やプログラム全体が正しく動作しなくなる可能性がある。
main.c
12345678int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }
非整数値を合計する場合、正確な結果が期待されます。しかし、型の不一致により、結果が誤ってしまいます。
main.c
1234567891011121314151617#include <stdio.h> int func() { double number1 = 6.985; // Not `int` nubmer double number2 = 231.765; // Not `int` number double result = number1 + number2; return result; // Output of function } int main() { // Call and immediately printing the result of our function printf("Expected Result is 238.75, but result is %d\n", func()); return 0; }
このエラーの主な要因は2つあります:
- 戻り値の型が正しくない(
doubleであるべき) %d関数で誤った書式指定子(printf())を使用している(%fであるべき)
正しいバージョンは次のようになります:
main.c
1234567891011121314151617#include <stdio.h> double func() { double number1 = 6.985; // `int` nubmer double number2 = 231.765; // `int` number double result = number1 + number2; return result; // Output of function } int main() { // Print the result of our function printf("Expected Result is 238.75, and result is %f\n", func()); return 0; }
これは、関数の結果を直接変数や配列に代入したり、他の関数に渡したりできることを意味します。上記の例のように、printf関数で結果を使用したケースがその一例です。
注意
浮動小数点数のフォーマット指定子は%fです。
関数には複数のreturn文を含めることができ、それぞれ異なる条件で実行されます。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 5. 章 2
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 5. 章 2