1 00:00:07,185 --> 00:00:09,540 [Powered by Google Translate] CHRIS GERBER:函數是一個系列內的步驟 2 00:00:09,540 --> 00:00:12,000 更大的程序,通常被稱為 3 00:00:12,000 --> 00:00:14,440 多次和從多個中的其他位置 4 00:00:14,440 --> 00:00:15,720 該方案。 5 00:00:15,720 --> 00:00:18,480 當創建一個C函數,其中一項規定是 6 00:00:18,480 --> 00:00:21,050 指定一個返回值的類型。 7 00:00:21,050 --> 00:00:23,490 最簡單的情況是一個的情況下,調用 8 00:00:23,490 --> 00:00:26,510 代碼還沒有有關的函數的結果。 9 00:00:26,510 --> 00:00:28,530 這可能的情況下,當我們打印數據 10 00:00:28,530 --> 00:00:31,120 用戶的顯示,使用printf。 11 00:00:31,120 --> 00:00:33,140 在這種情況下,我們可以聲明一個返回值 12 00:00:33,140 --> 00:00:35,020 void類型。 13 00:00:35,020 --> 00:00:37,130 使用void簡單地告訴編譯器,沒有 14 00:00:37,130 --> 00:00:39,120 值將被退回。 15 00:00:39,120 --> 00:00:40,530 讓我們來看看這是什麼看起來像。 16 00:00:40,530 --> 00:00:42,940 >> 讓我們說,我們有一個功能叫做say_hello 17 00:00:42,940 --> 00:00:44,490 它有一個參數。 18 00:00:44,490 --> 00:00:47,050 我們將通過一個人的名字,它會顯示一個問候 19 00:00:47,050 --> 00:00:48,380 在屏幕上。 20 00:00:48,380 --> 00:00:50,505 該名稱將char *類型。 21 00:00:50,505 --> 00:00:53,080 我們將指定為參數。 22 00:00:53,080 --> 00:00:55,970 我的應用程序並不需要知道什麼是印刷或者如果它 23 00:00:55,970 --> 00:00:56,970 在打印。 24 00:00:56,970 --> 00:00:59,680 因此,返回值類型為void。 25 00:00:59,680 --> 00:01:02,060 此功能可以打印到屏幕上的命令是 26 00:01:02,060 --> 00:01:07,620 printf(“請你好,%S \ n 27 00:01:07,620 --> 00:01:12,100 “,名稱); 28 00:01:12,100 --> 00:01:14,690 問候語將被顯示和控制將被傳遞 29 00:01:14,690 --> 00:01:16,260 備份到調用代碼。 30 00:01:16,260 --> 00:01:19,370 有一點要注意的是,當返回值類型為void, 31 00:01:19,370 --> 00:01:20,790 你不需要回報 32 00:01:20,790 --> 00:01:22,300 表中的功能。 33 00:01:22,300 --> 00:01:25,270 如果您選擇包括1,不包括返回值 34 00:01:25,270 --> 00:01:27,420 作為一個參數。 35 00:01:27,420 --> 00:01:29,380 >> 在某些情況下,是有意義的返回一個 36 00:01:29,380 --> 00:01:30,570 從一個函數值。 37 00:01:30,570 --> 00:01:33,900 比方說,我們是寫一個函數調用add_floats。 38 00:01:33,900 --> 00:01:36,160 我們將它傳遞兩個參數,花車, 39 00:01:36,160 --> 00:01:37,510 被稱為第一和第二。 40 00:01:37,510 --> 00:01:40,520 它會告訴我們這些彩車是什麼總和。 41 00:01:40,520 --> 00:01:43,000 我們知道,如果我們添加了兩個漂浮起來,結果 42 00:01:43,000 --> 00:01:44,120 將持股量。 43 00:01:44,120 --> 00:01:47,540 鑑於此,我們選擇了一個返回類型為浮動。 44 00:01:47,540 --> 00:01:50,040 此功能將執行計算並返回 45 00:01:50,040 --> 00:01:52,260 在這樣的語句返回值 46 00:01:52,260 --> 00:01:54,770 第一+第二;。 47 00:01:54,770 --> 00:01:57,300 當控制傳遞回調用代碼, 48 00:01:57,300 --> 00:02:00,030 得到的值是現在的代碼。 49 00:02:00,030 --> 00:02:04,250 我們可以將這個值,如:float結果 50 00:02:04,250 --> 00:02:09,410 add_floats(3.14,1.62 51 00:02:09,410 --> 00:02:11,290 。); 52 00:02:11,290 --> 00:02:15,200 現在,在這種情況下,結果將包含值4.76。 53 00:02:15,200 --> 00:02:18,620 >> 在此提醒您,浮點值是不精確的。 54 00:02:18,620 --> 00:02:21,250 所以,如果這是一個財務計算,用美元和 55 00:02:21,250 --> 00:02:24,960 美分,我們可能要考慮一個精確的數據類型,如 56 00:02:24,960 --> 00:02:29,120 int和執行便士計算。 57 00:02:29,120 --> 00:02:31,270 >> 另一種情況下,我們將要返回一個值從 58 00:02:31,270 --> 00:02:33,980 作用是當我們想知道,如果一個函數是 59 00:02:33,980 --> 00:02:35,960 成功的。 60 00:02:35,960 --> 00:02:39,190 如果沒有成功,我們可能還需要知道什麼類型的 61 00:02:39,190 --> 00:02:41,250 發生錯誤。 62 00:02:41,250 --> 00:02:43,647 比方說,我們正在試圖打開一個文件在磁盤上的數 63 00:02:43,647 --> 00:02:45,220 中的字符數。 64 00:02:45,220 --> 00:02:48,635 如果文件不能打開,我們希望能夠停止和 65 00:02:48,635 --> 00:02:50,910 告訴用戶有關的問題。 66 00:02:50,910 --> 00:02:54,070 >> 我們會打電話給我們的的功能count_file_chars和會 67 00:02:54,070 --> 00:02:55,490 需要一個參數。 68 00:02:55,490 --> 00:02:57,420 我們將通過在使用的文件名 69 00:02:57,420 --> 00:02:59,610 字符*文件名。 70 00:02:59,610 --> 00:03:03,050 此功能可能是這個樣子。 71 00:03:03,050 --> 00:03:05,450 在這個例子中,我們希望返回的數 72 00:03:05,450 --> 00:03:07,130 為0,或更多。 73 00:03:07,130 --> 00:03:08,870 這使得我們的負整數 74 00:03:08,870 --> 00:03:10,200 使用為定點價值觀。 75 00:03:10,200 --> 00:03:13,320 一個哨兵值僅僅是一個特殊值,它不 76 00:03:13,320 --> 00:03:16,200 合法的數據,但傳達的信息。 77 00:03:16,200 --> 00:03:19,480 在這裡,如果我返回-1調用代碼,我 78 00:03:19,480 --> 00:03:21,830 實際發送的郵件出現了一個錯誤,而 79 00:03:21,830 --> 00:03:23,810 試圖訪問該文件。 80 00:03:23,810 --> 00:03:26,060 然後,我可以檢查返回值來確定,如果我 81 00:03:26,060 --> 00:03:28,060 函數調用成功。 82 00:03:28,060 --> 00:03:30,350 如果這個數字是0或更大的,我也知道 83 00:03:30,350 --> 00:03:32,180 在該文件中的字符數。 84 00:03:32,180 --> 00:03:35,310 然而,如果數字為小於0,我可以簡單地 85 00:03:35,310 --> 00:03:37,350 打印出了問題發生。 86 00:03:37,350 --> 00:03:40,120 一個權衡考慮的是,保留所有 87 00:03:40,120 --> 00:03:43,180 負值為定點值,假設這是一個 88 00:03:43,180 --> 00:03:46,070 32位的整數,我已經基本上帶走了周圍 89 00:03:46,070 --> 00:03:48,970 2億可能的返回值。 90 00:03:48,970 --> 00:03:51,270 >> 返回值類型是最重要的元素之一 91 00:03:51,270 --> 00:03:52,460 函數調用。 92 00:03:52,460 --> 00:03:54,670 希望這簡短的概述,幫助你想想 93 00:03:54,670 --> 00:03:59,110 三種主要類型:無效,結果值和定點值, 94 00:03:59,110 --> 00:04:00,190 而當每個三個可能會對 95 00:04:00,190 --> 00:04:02,010 適當的在你的代碼中。 96 00:04:02,010 --> 00:04:03,260 感謝收看。