<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Parameters on TouchingFish.top</title><link>https://touchingfish.top/tags/parameters/</link><description>Recent content in Parameters on TouchingFish.top</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 29 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://touchingfish.top/tags/parameters/index.xml" rel="self" type="application/rss+xml"/><item><title>编程语言中的函数</title><link>https://touchingfish.top/2020/c-functions-of-programming/</link><pubDate>Fri, 29 May 2020 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2020/c-functions-of-programming/</guid><description>&lt;p&gt;数学上的函数是指一种映射关系，通常用来将一个输入（或多个输入）映射到一个输出。对于每一个特定的输入，总是有一个确定的输出。例如，函数 f(x) = x² 将输入 x 映射为其平方。&lt;/p&gt;
&lt;p&gt;编程语言中的函数与之类似，具有输入和输出的概念，但其本质上更广泛和灵活。&lt;/p&gt;
&lt;p&gt;在编程中，函数不仅可以执行计算，还可以执行一系列操作，如修改数据、输出信息、读取文件等。函数在编程中是用来封装一段代码，使得该代码可以复用，并且能够通过调用函数来执行特定的任务。&lt;/p&gt;
&lt;p&gt;编程语言中的函数通常具有以下的特点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;定义与调用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;定义函数时，需要给出函数名、参数（如果有）和函数体。&lt;/li&gt;
&lt;li&gt;调用函数时，通过函数名和传递的参数来执行函数。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;参数与返回值：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;函数通常接受参数（inputs），并可能返回一个值（output）。&lt;/li&gt;
&lt;li&gt;某些函数可能不接受参数或不返回值（如在 C 语言中使用 &lt;code&gt;void&lt;/code&gt; 关键字）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;封装与抽象：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;函数将代码封装起来，使得复杂操作可以通过简单的函数调用来实现。&lt;/li&gt;
&lt;li&gt;通过函数的使用，可以更容易地理解和管理代码结构。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;作用域：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;函数的内部变量通常具有局部作用域，即它们只能在函数内部访问。&lt;/li&gt;
&lt;li&gt;这种作用域规则有助于避免变量命名冲突和意外的值修改。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id="windows-c-的函数编程"&gt;Windows C 的函数编程&lt;/h1&gt;
&lt;h2 id="函数声明与定义"&gt;函数声明与定义&lt;/h2&gt;
&lt;p&gt;在使用函数前需要进行声明（或称为函数原型声明）。例如，&lt;code&gt;int add(int a, int b);&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;函数的定义包括函数的返回类型、函数名、参数列表和函数体。&lt;/p&gt;
&lt;h2 id="返回类型"&gt;返回类型&lt;/h2&gt;
&lt;p&gt;每个函数必须有一个返回类型，表明该函数返回的数据类型。&lt;/p&gt;
&lt;p&gt;如果函数不返回任何值，使用 &lt;code&gt;void&lt;/code&gt; 作为返回类型。&lt;/p&gt;
&lt;h2 id="参数传递"&gt;参数传递&lt;/h2&gt;
&lt;p&gt;C 语言中的函数参数通常是按值传递的，即传递的是参数的副本，函数内部的修改不会影响原参数。&lt;/p&gt;
&lt;p&gt;如果需要函数内部修改外部变量的值，可以使用指针进行参数传递。&lt;/p&gt;
&lt;h2 id="变量的作用域"&gt;变量的作用域&lt;/h2&gt;
&lt;p&gt;局部变量只在离自己最近的大括号内有效。&lt;strong&gt;形式参数&lt;/strong&gt;也是局部变量。&lt;/p&gt;
&lt;p&gt;全局变量在源文件中定义，占用的内存不会因为程序结束而释放，二是在整个进程的执行过程中一直有效。&lt;/p&gt;
&lt;p&gt;变量的存储方式分为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;静态存储方式：程序运行期间，由系统分配固定的存储空间，&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;动态存储方式：程序运行时根据需要进行动态的分配存储空间。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="外部变量"&gt;外部变量&lt;/h3&gt;
&lt;p&gt;全局变量在源程序文件（一个编译单位）中，从定义位置到文件末尾一直有效。可以使用 &lt;code&gt;extern&lt;/code&gt; 扩展变量的作用域。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-C" data-lang="C"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;extern&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;//扩展全局变量k的作用域
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;k = %d&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c1"&gt;//全局变量k的定义与生效，向下↓
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;头文件&lt;/strong&gt;是扩展名为 .h 的文件，包含了 C 函数声明和宏定义，被多个源文件中引用共享。&lt;strong&gt;全局变量不能定义在头文件中&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>