Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 宣言、型、戻り値 | Functions
C基礎

book宣言、型、戻り値

メニューを表示するにはスワイプしてください

前回のレッスンでは、関数の基本構造について学びました。

main.c

main.c

copy
123456
func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }

宣言

関数を利用する前に、必ず宣言する必要があります。宣言前に関数を呼び出すとエラーになります。

関数の宣言は、定義と同時に行うこともできます(上記の例参照)。また、プロトタイプを使って宣言する方法もあり、このセグメントの最後で補足として説明します。

関数の型と戻り値

関数の型は、関数の結果のデータ型をコンパイラに伝える役割を持つ。例えば、関数が2つの整数の合計を計算する場合、結果として整数型が期待される。

main.c

main.c

copy
12345678
int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }

データ型と戻り値の型が一致しない場合、関数やプログラム全体が正しく動作しなくなる可能性がある。

main.c

main.c

copy
12345678
int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }

非整数値を合計する場合、正確な結果が期待されます。しかし、型の不一致により、結果が誤ってしまいます。

main.c

main.c

copy
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

main.c

copy
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関数で結果を使用したケースがその一例です。

Note
注意

浮動小数点数のフォーマット指定子は%fです。

関数には複数のreturn文を含めることができ、それぞれ異なる条件で実行されます。

question mark

count関数を作成しましたが、main関数内でどのように呼び出しますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 5.  2

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 5.  2
some-alt