[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。