[Powered by Google Translate] クリスGERBER:この関数は、内部の一連の手順です 通常呼び出されることを想定して大規模なプログラム、 複数回に複数の他の場所から プログラム。 C関数を作成する場合、要件の1つはにある 戻り値の型を指定します。 最も単純なケースでは、呼び出し側の状況です コー​​ドは、関数の結果とは関係ありません。 我々はデータを印刷しているとき、これはそうであるかもしれません printf関数と同様に、ユーザーのディスプレイ、。 この場合において、我々は戻り値を宣言することができます void型で。 voidを使用すると、単純にコンパイラに指示し、そのノー 値が返されます。 これはどのようなものか見てみましょう。 我々はそのsay_helloと呼ばれる機能を持っていることを言うてみましょう つの引数を取ります。 我々はそれを人の名前を渡すだろうし、それは挨拶を表示します 画面に表示されます。 名前はchar *型であることでしょう。 そして、我々は、引数としてそれを指定します。 私のアプリケーションは、それを印刷したかを知る必要がある場合、またはしていません 印刷された。 だから戻り値がvoid型になります。 この関数は、次のようなコマンドで画面に印刷することができます のprintf( "こんにちは、%sを\ n "名); 挨拶が表示され、制御が渡されます 呼び出し元のコードに戻る。 もう一つ注意すべきは、戻り値の型がvoidであるときということです あなたはリターンを含める必要はありません 関数内のステートメント。 あなたがいずれかを含めるように選択した場合、戻り値が含まれていません 引数として渡されます。 いくつかのケースでは、それは返すために理にかなっている 関数からの値。 我々はadd_floatsという関数を書いていたとしましょう​​。 我々はそれに2つの引数は、両方の浮動小数点数を、通過します 第一および第二と呼ばれる。 それはそれらの浮動小数点数の和が何であるかを教えてくれる。 我々は、我々は一緒に2つの浮動小数点数を追加した場合、その結果を知っている floatになります。 ことを考えると、我々は、floatの戻り値の型を選択します。 この関数は、このような計算を実行すると戻ります リターンのようなステートメント内の値 第一+第2; 制御が呼び出し元のコードに戻された場合、 値が得られたことは今そのコードに利用可能です。 我々は次のようにこの値を格納することができます:float型の結果を= add_floats(3.14、1.62 ); この場合の結果は現在値4.76を含んでいるでしょう。 念のため、浮動小数点値は不正確である。 これはドルを使用しており、財務計算だったので、もし セント、我々はこのような正確なデータ型を考慮する必要があります INTとペニーの計算を実行します。 我々はから値を返すようにしたいであろうもう一つのケース 関数は、関数があった場合、我々は知っているしたい場合です 成功した。 それが成功しなかった場合、我々はまた、どのようなタイプの知りたいと思うかもしれません エラーが発生しました。 我々は数えるために、ディスク上のファイルを開こうとしていると言ってみましょう それの文字数。 ファイルを開くことができない場合、我々は止めることができるようにしたいと 問題についてユーザに通知します。 私達は私達の機能count_file_charsを呼ぶことにします、それは意志 つの引数を取る。 我々は、使用してファイルの名前を渡します char *のfilenameという。 この関数は、このように見えるかもしれません。 この例では、カウントに戻っ期待 0以上であること。 これは私達に負の整数を残す センチネル値として使用します。 センチネル値は単にではない特別な値です 正当なデータではなく、情報を譲渡するものではありません。 ここで、私は、呼び出し元のコードに-1を返した場合、私は 実際にエラーが発生したことを示すメッセージを送信中 ファイルにアクセスしよう。 私はその後、私のかどうかを判断するために、その戻り値をチェックすることもでき 関数呼び出しが成功しました。 数値が0以上であった場合、私は知っているだろう ファイル内の文字数。 しかし、数が0未満だった場合、私は単純に可能性 問題が発生していたことを印刷します。 考慮すべき一つのトレードオフは、すべて予約することによって、ということです これがあると仮定してセンチネル値として負の値、 32ビット整数は、私は基本的に周りに取り去りました。 20億可能な戻り値。 戻り値の型は、最も重要な要素の一つである 関数呼び出し。 うまくいけば、この短い概要は、考える助けた 3キータイプ:ボイド、結果値、およびセンチネル値、 とするとき3の各々はあるかもしれない あなたのコード内の適切な。 見てくれてありがとう。