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 你好%的經常S IN背景 在這裡我想打印出 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 字符串類型的參數。 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調用print名字。 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 >> 現在,讓我們用make編譯我的程序 函數為零,並用點運行它 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 從而告訴下在事前有 存在一個所謂的打印功能 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 也許應該這樣做的主要遺骸 第一件事,我還是 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 >> 特別是,如果我回到我的 終端窗口並運行make功能 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 現在,我們可以回到舊 版本,並把打印的名 52 00:02:43,160 --> 00:02:44,450 實施往上頂。 53 00:02:44,450 --> 00:02:48,730 >> 但我可以不是只給℃的提示 ,有一個函數來。 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 實際執行的功能 稱為打印名字。 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