[Powered by Google Translate] 関数は、大規模なプログラムの中で使用されるコードのセクションです 特定のタスクを実行できます。 彼らはまた、プロシージャ、サブルーチン、およびサブプログラムとして知られている 彼らは実際にプログラム内だけでミニプログラムであるからである。 あなたは気づいていない場合でも、 あなたがC言語でプログラムした場合は、ほとんど間違いなく、すでに機能を使用していた あなたは、printfを使用して画面にものを書くときに、 あなたは実際のprintfという関数を使用しています。 同様に、getIntおよびGetStringメソッドは、CS50があなたのために用意されている関数です。 プログラマーとして、我々はいくつかの理由のための関数を使用します。 画面への書き込みのような一般的なタスクを実行する機能を有する と、ユーザーに入力を促すこと私達にプログラミング時間を節約できます。 それは、同じことを行うためのコードを記述する必要はありません 彼らはすでに私たちのためにやっているので。 私たちは、これらの関数が内部で作業する方法を正確に理解することが必要さえありません。 その代わりに、私達はちょうど私達のプログラムの中で使用したり、呼び出す方法を知っている必要があります。 これは、大規模なプログラムで関数を記述することも役に立ちます あなたは、他の人がそれらを使用持つことを計画していない場合でも ちょうど手元に大きなタスクを分割する。 このように、あなたは、あなたがエッセイに構造を与えると思います多くのように、コードに構造を与える そして実際に大規模なプロジェクトでは、複数の人々を有効に 同時に異なる部分を同時に作業する 一人の仕事が終わるところ、それは明らかだし、別のが始まりだから。 関数は、通常、引数またはパラメータとして知られている、1つ以上の入力で動作 次に返される出力値にそれらの入力を変換する。 しかし、それは、任意の入力引数を使用していない機能を持たせることも可能です と出力を返しません。 さて、十分なふわふわのものを持つ。 のは、C言語でいくつかの実際の機能を見てみましょう ここでは、それを信じるかどうか、その正方形と呼ばれる機能を持っている 入力の2乗を計算します。 それの構文を解剖してみましょう。 あなたが関数内で参照してください最初の単語は、int、 関数の戻り値の型を指定する、つまり、機能の出力のCタイプ。 この関数はint型で値を出力します。 あなたが参照してください次の単語は、この場合の乗関数の名前です。 適切な関数を命名することは、特に重要である それはおそらく、関数が何をするかの最も目に見えるドキュメントだから。 それは、この関数SHAZAMまたはbooyah名前を付けて涼しいかもしれない それは私たちに、関数が何をするかについては何も言わないだろう。 関数名の後に、関数に引数を入力しています。 彼らは、括弧のセット内にリストされ その型と関数の本体内で彼らのために使用する名前の両方を持つ。 広場は、広場にちょうど1つの引数は、intを取る その私が名xを与えることにしました。 これは、関数宣言やプロトタイプを終了します。 関数の残りの部分を囲む中括弧 、関数本体の始まりと終わりを示す 関数自体の定義。 広場はかなり単純な関数です。 我々がしなければならないすべてはそれ自身によってxを掛けているのでそれが唯一の、1行を持っている。 単語returnは、出力値を指定し、関数の終了をトリガします。 正方形の関数を使用するために、我々は適切な入力を供給する必要が その後、出力をキャプチャします。 ここでは、あなたはそれを行うためのいくつかの方法を参照してください。 我々は6のように、生のintに渡すことができ、あるいは、我々は次のような変数を渡すことができます。 たびに、我々は正方形呼び出すことに注意してください、 我々は、変数内の出力をキャプチャし、それを印刷してください。 しかし、我々は変数に戻り値を格納してから印刷する必要はありません。 我々がそうであるように我々はprintfに直接送ることができるとき、私たち平方10、 しかし、これは我々が正方形10の戻り値へのアクセスを持っていないことを意味します コー​​ドのどこかほかの場所インチ 別の簡単な例を見てみましょう。 今回は、我々は関数がどのように見えるかを確認できるように、一緒に2山車を合計します それだけではなく1の2つの入力を持っているとき。 あなたが見ることができるように、それはそれほど変わらないです。 我々が行うすべてが、第二引数にbというフロートを追加するだけです 最初の引数からそれを区切るには、カンマを使用して引数リストに、浮かんでいる。 だから、私たちの広場とSUM関数を理解するのは非常に簡単です 彼らはあなたが数学の授業の前に見てきた機能と同等だから。 さて、若干異なって関数を見てみましょう。 代わりに値を返すのではなく、状態を変更します。 これは、副作用を持つものとして知られています。 このプログラムでは、printf_fudd_style機能 我々は前に見たことがない、戻り値の型は、voidを持っています。 Voidは、関数は何も返さないことを言うために使用されます。 void型のない変数がありません ので、printf_fudd_styleような関数から何かを返そうとした場合、 コンパイラは怒鳴られます。 printf_fudd_styleの内部では、まず、関数がまだタスクを実行している間、あることがわかり すなわち、すべてのWSにRsを切り替え、 この関数のポイントは、画面上の文字列を変更し、それをプリントアウトすることです プログラムの状態を変更する代わりに結果を返します。 この機能を使用することにより、私たちの広場とSUM関数を使用して、非常によく似ています 我々は変数に結果を保存するか、別の関数にそれを渡さないを除いて の話をする結果がありませんので。 だから、我々はエルマーファッドプログラムをコンパイルして実行すると、 あなたはその "あなたは汚いウサギ!"を参照してください。右に変換されます "あなたはwascally wabbit!" 最後に、議論する価値がある1以上の機能はあり 以来、あなたは、あなたが今まで書いてきたすべてのCプログラムで主にそれを使用してきた。 メインはずっと他のどのような機能です。 これは、戻り値の型、名前、引数のリスト、およびボディを持っている。 mainの戻り値の型は常にintであり、 そしてこのintは、それが終了したときにプログラムの状態を伝えるのに使用されます。 それが正常に実行されなかったり、エラーのためにそれを早期終了したのでしょうか? ゼロに戻すと、正常に実行されたことを示している ゼロ以外の値を返すことはエラーを示します。 あなたが書いているプログラムの種類に応じて、 別のエラーに対して異なるコードを返すことは役に立ちます 後でプログラムを使用する人々のため。 本管の引数はもう少し複雑です。 引数リストはどちらか、空にすることができます 我々は、括弧の間に空隙を書き込むことによって示している、 intとchar *の配列:またはリストは2つの引数を持つことができます。 あなたのプログラムが使用しようとするときは、これらが使用されている プログラムが呼び出されたときの引数は、コマンドラインに渡される。 int型の引数は、一般的には、argcと呼ばれ そしてそれはargvとして知られているchar *配列の等しい長さです。 argvは、プログラムに渡されたコマンドライン引数が含まれています。 別要するに、私たちは、より詳細にこれらの変数を使用する方法についてお話しします。 現時点では、メインのいずれかの方法を宣言して自由に感じることができます。 私は一般的に可能な場合は、引数なしで、短い方法でそれを書き出すことを選択します。 さて、関数を記述する方法を知っていること、 あなたは、より大規模で複雑なプログラムを開発することにあなたの方法によくしている。 私の名前はネイトHardisonです。これはCS50です。