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 感谢收看。