1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> スピーカ1:私は傾向があるようなので、私は感じて printf関数のHello Worldやprintfを書く 3 00:00:04,010 --> 00:00:08,160 こんにちはパーセントのかなり頻繁に文脈で 私はプリントアウトしたい場所 4 00:00:08,160 --> 00:00:11,360 文字列、時々尋ねる その文字列のユーザ部分。 5 00:00:11,360 --> 00:00:14,980 我々が作成している場合まあ、それはいいではないでしょう 私たち自身の関数を呼び出し、 6 00:00:14,980 --> 00:00:19,900 、その目的は生活の中で、印刷の名前を言う こんにちは、カンマを印刷するだけである 7 00:00:19,900 --> 00:00:24,560 誰それ誰それを受け入れることにより、 その関数への引数として? 8 00:00:24,560 --> 00:00:29,220 我々は独自の関数を宣言することができます ちょうど私達が次のようにスクラッチではできる限り。 9 00:00:29,220 --> 00:00:35,280 >> 言い換えれば、私はしたいのですがあるとし 自分の名前をprintf関数とし、ユーザーに確認 10 00:00:35,280 --> 00:00:39,470 彼または彼女の名前の文字列を持つため SはGetStringメソッドに相当します。 11 00:00:39,470 --> 00:00:42,060 そして私は、関数を呼び出したい と呼ばれる印刷名 12 00:00:42,060 --> 00:00:44,340 その入力としてSを渡す。 13 00:00:44,340 --> 00:00:47,770 >> 今、残念ながら、何の機能はありません プリント名は、C言語で、またはで呼び出さ 14 00:00:47,770 --> 00:00:48,950 CS50ライブラリ。 15 00:00:48,950 --> 00:00:51,220 しかし、どんなに、私たちのため それ自身にすることができます。 16 00:00:51,220 --> 00:00:54,560 私たち自身の関数を宣言し、 それを実現するには、単に行うことができます 17 00:00:54,560 --> 00:00:59,000 このファイル内と宣言する余地 無効この機能は、次のように - 18 00:00:59,000 --> 00:01:01,900 機能がないことを意味する 実際に何かを返すつもり、 19 00:01:01,900 --> 00:01:03,890 それがなければならないにもかかわらず、 副作用 - 20 00:01:03,890 --> 00:01:08,030 名前を印刷し、それではに指定できます プリント名が期待する括弧 21 00:01:08,030 --> 00:01:09,680 String型の引数。 22 00:01:09,680 --> 00:01:12,180 そして一般的に、我々は思うだろう 名前とそれの。 23 00:01:12,180 --> 00:01:15,140 >> そして私たちの中括弧を開いてみましょう と私たちのブレースを閉じます。 24 00:01:15,140 --> 00:01:21,930 そして、その後のprintf内側こんにちはカンマ パーセントの新しいラインコンマ名。 25 00:01:21,930 --> 00:01:24,570 言い換えれば、たとえこの この関数は、コードの一行のみだが、それ 26 00:01:24,570 --> 00:01:27,290 現在いくつかのより高いがありますか 印刷するレベルの目的 27 00:01:27,290 --> 00:01:28,950 あいさつで誰かの名前。 28 00:01:28,950 --> 00:01:33,115 >> 今、メインの内側に、私はあることに気づく Sを渡すことで、印刷の名前を呼んで。 29 00:01:33,115 --> 00:01:35,830 だから、私は持っているようになりましたようです 完全なプログラム。 30 00:01:35,830 --> 00:01:38,650 他の唯一の違い 私たちは、書いたばかりでないということです 31 00:01:38,650 --> 00:01:42,480 このプログラムは、それはまた、主有している 宣言との実装 32 00:01:42,480 --> 00:01:44,740 プリント名、私自身の機能。 33 00:01:44,740 --> 00:01:49,505 >> それではメイクで自分のプログラムをコンパイルしてみましょう 機能ゼロ、ドットを使用して実行し 34 00:01:49,505 --> 00:01:51,080 機能ゼロを大幅に削減する。 35 00:01:51,080 --> 00:01:53,390 私の名前の入力を求められたら 私はデイヴィッドを入力します。 36 00:01:53,390 --> 00:01:55,830 そして、私は確かに迎えています 「こんにちは、デビッド·。」と 37 00:01:55,830 --> 00:02:00,160 >> 今、それは私は非常に意図的に判明 メイン上で宣言した印刷名、 38 00:02:00,160 --> 00:02:03,860 それによって、事前にCを伝えることがある 印刷と呼ばれる機能が存在している 39 00:02:03,860 --> 00:02:06,930 私が使用できるように名前を付ける それ以降の主にある。 40 00:02:06,930 --> 00:02:11,610 今、私は代わりに、印刷の名前を入れていた 率直に言って、私としての私のファイルの一番下、 41 00:02:11,610 --> 00:02:15,310 おそらく主残るようにすればいい Iまたは最初の事 42 00:02:15,310 --> 00:02:18,450 別のユーザーは、自分のコードで見ている それは私のコードがあることが判明 43 00:02:18,450 --> 00:02:19,780 コンパイルするつもりはありません。 44 00:02:19,780 --> 00:02:23,610 >> 具体的には、私は戻って行けば、私の ターミナルウィンドウと実行は、関数を作る 45 00:02:23,610 --> 00:02:26,120 ゼロは、今、私は怒鳴らだことがわかります。 46 00:02:26,120 --> 00:02:30,340 私は私の端末ウィンドウにスクロールすると、 私は、赤で、この最初のエラーが表示されます 47 00:02:30,340 --> 00:02:33,120 の暗黙の宣言 機能印刷名。 48 00:02:33,120 --> 00:02:34,220 >> さて、それは何を意味するのでしょうか? 49 00:02:34,220 --> 00:02:37,190 まあ、私が実装したにも関わらず、 このファイルに名前を印刷し、私はいませんでした 50 00:02:37,190 --> 00:02:40,080 私がした前にそれを実装 主にそれを使用していました。 51 00:02:40,080 --> 00:02:43,160 今、私たちは古いに戻って行くことができる バージョンおよびput印刷名の 52 00:02:43,160 --> 00:02:44,450 トップアップ実装。 53 00:02:44,450 --> 00:02:48,730 >> しかし、私だけではなく、Cにヒントを与えることができます 来する機能があることを。 54 00:02:48,730 --> 00:02:55,390 具体的には、主の上に私は宣言することができます 私は先に行ったように名前を印刷しますが、 55 00:02:55,390 --> 00:02:59,450 それによって、セミコロンで行を終了 実装するために有望ではないが、まだ 56 00:02:59,450 --> 00:03:02,180 実際に機能を実現 印刷nameという。 57 00:03:02,180 --> 00:03:05,860 私はその後、私のの上部のメイン持つことができます 私が望んでいて、私は実際にできるように、ファイル 58 00:03:05,860 --> 00:03:07,440 下部にプリント名を実装します。 59 00:03:07,440 --> 00:03:12,860 >> 私は今、私の端末ウィンドウに戻ると メイクで機能ゼロを再コンパイルし、 60 00:03:12,860 --> 00:03:14,390 今回はそれがコンパイルされます。 61 00:03:14,390 --> 00:03:18,240 そして、私は、ドットスラッシュ機能とそれを実行した場合 ゼロが私の名前を指定して、私は今 62 00:03:18,240 --> 00:03:20,650 「デイヴィッド、こんにちは。」として迎え 63 00:03:20,650 --> 00:03:22,268