[Powered by Google Translate] 函数是在一个较大的程序的代码段用于 以执行特定的任务。 它们也被称为程序,子程序,和子程序, 因为他们真的是计划内的小程序。 尽管你可能没有注意到, 你最肯定已经使用的功能,如果你用C编程。 当你写的东西在屏幕上使用printf, 你实际使用printf的调用的函数。 同样,调用getInt和GetString CS50为您提供的功能。 作为程序员,我们使用的一些原因。 具有执行常见任务,如写在屏幕上 并提示用户输入我们节省了时间编程时。 这是没有必要编写代码来执行这些同样的事情 因为他们已经为我们做了。 它甚至没有必要,我们完全了解这些功能的内部工作原理。 相反,我们只需要知道如何使用或致电他们在我们的程序中。 这也有利于在较大的程序写入功能 即使你不打算有他人使用它们, 只是为了瓜分更大的任务在手。 这样一来,你给结构就像你想给你的代码结构的一篇文章, 与真正的大项目,使多人 的不同部分,在相同的时间 因为它是一个人的工作结束和另一个开始。 函数一般工作在1个或多个输入,已知作为参数或参数, 这些输入变换成一输出值,该值然后返回。 然而,它也可能有不使用任何输入参数的功能 不返回的输出。 好了,足够的蓬松的东西。 让我们来看看一些真正的功能在C 在这里,我们有一个功能叫方,相信它或没有, 计算输入的平方。 让我们来分析一下它的语法。 你看到的第一个字的功能,INT, 指定返回类型的函数,即,函数的输出的C类型。 此功能将输出一个int型的值。 你看到下一个字的功能,在这种情况下,方的名称。 适当地命名功能就显得尤为重要 ,因为它可能是最显着的功能是什么文件。 这可能是冷静来命名此功能SHAZAM和booyah的, 但不会告诉我们任何有关的功能是什么。 下面的函数名来输入的功能,参数。 他们列出一组括号内 它们的类型和要使用的名称为他们身体内的功能。 广场只需要1个参数,将int方, 我已经决定放弃的名称x。 这将结束在函数声明或原型。 花括号括起的其余的功能 表示的函数体的开始和结束, 函数本身的定义。 广场是一个非常简单的功能。 只得到了1号线,因为所有我们需要做的是乘x的本身。 这个词返回指定的输出值,并触发结尾的函数。 要使用方的功能,我们需要提供适当的输入 然后捕获输出。 在这里,你会看到一对夫妇的方式这样做。 我们可以通过在原始的诠释,6一样,或像一个变量,我们可以通过在。 需要注意的是,每次我们调用方, 我们捕获输出,在变量中,然后打印出来。 然而,我们并没有返回值存储在变量中,然后打印。 我们可以直接将其发送到printf,因为我们做的时候,我们方10, 但是这并不意味着我们没有进入广场10的返回值 在代码的其他地方。 让我们来看看另一个简单的例子。 这一次,我们将总结2漂浮在一起,因此,我们可以看到一个函数看起来像什么 它有2个输入,而不是只有1。 正如你可以看到的,这是没有太大的不同。 我们要做的是在第二个参数中添加名为b,浮子, 使用一个逗号来分隔它的第一个参数的参数列表,飘起了。 因此,我们的平方和sum函数是很容易理解的 因为他们是在数学课上,你之前见过的功能。 现在,让我们来看看在功能略有不同。 返回一个值,而不是修改的状态。 这是被称为具有一个副作用。 在这个程序中,printf_fudd_style功能 有一个返回类型,我们以前从未见过的,无效的。 void是说,函数不返回任何东西。 有没有void类型的变量, 所以,如果你尝试从printf_fudd_style之类的函数返回的东西, 编译器会骂你的。 内部printf_fudd_style,我们可以看到,虽然功能仍执行任务, 即所有R切换到WS, 点的功能是修改字符串,然后把它打印出来,在屏幕上, 程序状态的改变,而不是返回一个结果。 使用这个函数是非常喜欢使用我们的平方和sum函数, 但我们不将结果存储在变量或将其传递给另一个函数 因为有没有结果可言。 所以,当我们编译并运行我们的埃尔默法德语节目, 你看,“你赖皮兔!”被转化的权利 :“你wascally wabbit!” 最后,还有更多的功能值得讨论 因为你已经用它在每一个你曾经写过C程序,主要。 主要是就像任何其他的功能。 它有一个返回类型,名称,参数列表,以及一个身体。 的主要是永远的返回类型为int, 使用int沟通的程序的状态,当它完成。 它是否运行成功,或者没有提前结束,因为一个错误吗? 返回为0表示成功运行, 并返回任何非零的值表示一个错误。 根据你写的什么样的程序, 不同的代码返回不同的错误,可以帮助 的人使用你的程序。 电源参数是一个更复杂一点。 参数列表可以是空的, 我们指示写在括号之间的空白, 列表可以有两个参数:一个int数组的char *。 这些都是用来当你的程序拟使用 在命令行传入的参数调用程序时。 int参数通常被称为ARGC, 和它的char *阵列的长度相等,被称为的argv。 argv包含到程序的命令行参数传递。 在另一个短期内,我们将讨论如何使用这些变量的更多细节。 现在,您可以随时申报主要两种方式。 我通常选择较短的方式写出来,不带任何参数,在可能的情况下。 现在,你知道如何编写功能, 你对你的方式来开发更大,更复杂的程序。 我的名字是Nate哈迪森。这是CS50。