Skip to content

Commit 1c3ff70

Browse files
committed
deploy: 7ad2c8e
1 parent 2dd2014 commit 1c3ff70

File tree

8 files changed

+233
-233
lines changed

8 files changed

+233
-233
lines changed

functional/index.html

+36-36
Large diffs are not rendered by default.

functions/index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ <h1 id="_1">自定义函数 (未完工)</h1>
134134
}
135135
</code></pre>
136136
<blockquote>
137-
<p><img src="/img/bulb.png" height="30px" width="auto" style="margin: 0; border: none"/> 对于没有返回值(返回类型为 <code>void</code>)的函数,可以省略 <code>return</code> 不写。</p>
138-
<p><img src="/img/warning.png" height="30px" width="auto" style="margin: 0; border: none"/> 对于有返回值的函数,必须写 return 语句,否则程序出错。</p>
137+
<p><img src="../img/bulb.png" height="30px" width="auto" style="margin: 0; border: none"/> 对于没有返回值(返回类型为 <code>void</code>)的函数,可以省略 <code>return</code> 不写。</p>
138+
<p><img src="../img/warning.png" height="30px" width="auto" style="margin: 0; border: none"/> 对于有返回值的函数,必须写 return 语句,否则程序出错。</p>
139139
</blockquote>
140140
<p>TODO:更多介绍函数</p></div>
141141
</div>

helloworld/index.html

+7-7
Original file line numberDiff line numberDiff line change
@@ -167,15 +167,15 @@ <h2 id="_2">什么是函数</h2>
167167
</code></pre>
168168
<p>上面的代码中,<code>compute</code> 就是函数的名字,<code>int</code> 表示函数的返回类型——整数。</p>
169169
<blockquote>
170-
<p><img src="/img/bulb.png" height="30px" width="auto" style="margin: 0; border: none"/> 乃取整数之英文“integer”的“int”而得名(模仿侯捷老师说话)</p>
170+
<p><img src="../img/bulb.png" height="30px" width="auto" style="margin: 0; border: none"/> 乃取整数之英文“integer”的“int”而得名(模仿侯捷老师说话)</p>
171171
</blockquote>
172172
<p><code>{}</code> 包裹的是函数体,是函数被调用时会执行的代码。</p>
173173
<p>此处 <code>return 42</code> 就是函数体内的唯一一条语句,表示函数立即执行完毕,返回 42。</p>
174174
<ul>
175175
<li>返回值: 当一个函数执行完毕时,会向调用该函数的调用者返回一个值,这个值就是 <code>return</code> 后面的表达式的值。返回值可以有不同的类型,此处 <code>compute</code> 的返回类型是 <code>int</code>,也就是说 <code>compute</code> 需要返回一个整数。</li>
176176
</ul>
177177
<blockquote>
178-
<p><img src="/img/bulb.png" height="30px" width="auto" style="margin: 0; border: none"/> 关于函数的参数我们稍后再做说明。</p>
178+
<p><img src="../img/bulb.png" height="30px" width="auto" style="margin: 0; border: none"/> 关于函数的参数我们稍后再做说明。</p>
179179
</blockquote>
180180
<h2 id="main">从 main 函数说起</h2>
181181
<p>C++ 程序通常由一系列函数组成,其中必须有一个名为 <code>main</code> 的函数作为程序的入口点。</p>
@@ -186,11 +186,11 @@ <h2 id="main">从 main 函数说起</h2>
186186
</code></pre>
187187
<p>程序启动时,操作系统会调用 <code>main</code> 函数。</p>
188188
<blockquote>
189-
<p><img src="/img/question.png" height="30px" width="auto" style="margin: 0; border: none"/> 严格来说,是 C++ 运行时调用了 <code>main</code> 函数,但目前先理解为“操作系统调用了 <code>main</code> 函数”也无妨。</p>
189+
<p><img src="../img/question.png" height="30px" width="auto" style="margin: 0; border: none"/> 严格来说,是 C++ 运行时调用了 <code>main</code> 函数,但目前先理解为“操作系统调用了 <code>main</code> 函数”也无妨。</p>
190190
</blockquote>
191191
<p>要把程序发展壮大,我们可以让 <code>main</code> 函数调用其他函数,也可以直接在 <code>main</code> 函数中编写整个程序的逻辑(不推荐)。</p>
192192
<blockquote>
193-
<p><img src="/img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/> 因此,<code>main</code> 可以被看作是“宇宙大爆炸”。</p>
193+
<p><img src="../img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/> 因此,<code>main</code> 可以被看作是“宇宙大爆炸”。</p>
194194
</blockquote>
195195
<h2 id="main_1">main 函数的返回值</h2>
196196
<pre><code class="language-cpp">int main()
@@ -203,7 +203,7 @@ <h2 id="main_1">main 函数的返回值</h2>
203203
<p>如果程序正常执行完毕,正常结束退出,那就请返回 0。</p>
204204
<p>返回一个不为 0 的整数可以表示程序出现了异常,是因为出错了才退出的,值的多少可以用于表明错误的具体原因。</p>
205205
<blockquote>
206-
<p><img src="/img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/>
206+
<p><img src="../img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/>
207207
操作系统:我调用了你这个程序的 main 函数,我好奇程序是否正确执行了?让我们约定好:如果你运转正常的话,就返回0表示成功哦!如果有错误的话,就返回一个错误代码,比如返回1表示无权限,2表示找不到文件……之类的。当然,错误代码都是不为0的。</p>
208208
</blockquote>
209209
<h2 id="_3">这个黑色的窗口是?</h2>
@@ -239,7 +239,7 @@ <h2 id="_5">注释</h2>
239239
}
240240
</code></pre>
241241
<blockquote>
242-
<p><img src="/img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/>
242+
<p><img src="../img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/>
243243
(*<em>编译器脸红中*</em>)</p>
244244
</blockquote>
245245
<h1 id="space">space</h1>
@@ -258,7 +258,7 @@ <h1 id="space">space</h1>
258258
}
259259
</code></pre>
260260
<blockquote>
261-
<p><img src="/img/bulb.png" height="30px" width="auto" style="margin: 0; border: none"/>
261+
<p><img src="../img/bulb.png" height="30px" width="auto" style="margin: 0; border: none"/>
262262
在我们以后的案例代码中,都会像这样注释说明,充当<strong>就地讲解员</strong>的效果。去除这些注释并不影响程序的正常运行,添加文字注释只是小彭老师为了提醒你每一行的代码作用。</p>
263263
</blockquote></div>
264264
</div>

index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -206,5 +206,5 @@ <h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
206206

207207
<!--
208208
MkDocs version : 1.6.0
209-
Build Date UTC : 2024-07-17 09:52:54.920048+00:00
209+
Build Date UTC : 2024-07-17 09:56:05.784829+00:00
210210
-->

platform/index.html

+9-9
Original file line numberDiff line numberDiff line change
@@ -157,23 +157,23 @@ <h2 id="ide">IDE 不是编译器!</h2>
157157
<h2 id="_2">编译器是?</h2>
158158
<p>编译器是将源代码 (<code>.cpp</code>) 编译成可执行程序 (<code>.exe</code>) 的工具。</p>
159159
<blockquote>
160-
<p><img src="/img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/> C++ 是<strong>编译型语言</strong>,源代码不能直接执行哦!刚开始学编程的小彭老师曾经把网上的 “Hello, World” 代码拷贝到 <code>.c</code> 源码文件中,然后把后缀名改成 <code>.exe</code>,发现这样根本执行不了……后来才知道需要通过一种叫做<strong>编译器</strong>编译 <code>.c</code> 文件,才能得到计算机可以直接执行的 <code>.exe</code> 文件。</p>
160+
<p><img src="../img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/> C++ 是<strong>编译型语言</strong>,源代码不能直接执行哦!刚开始学编程的小彭老师曾经把网上的 “Hello, World” 代码拷贝到 <code>.c</code> 源码文件中,然后把后缀名改成 <code>.exe</code>,发现这样根本执行不了……后来才知道需要通过一种叫做<strong>编译器</strong>编译 <code>.c</code> 文件,才能得到计算机可以直接执行的 <code>.exe</code> 文件。</p>
161161
</blockquote>
162162
<p>C++ 源码 <code>.cpp</code> 是写给人类看的!计算机并不认识,计算机只认识二进制的机器码。要把 C++ 源码转换为计算机可以执行的机器码。</p>
163163
<h2 id="_3">编译器御三家</h2>
164164
<p>最常见的编译器有:GCC、Clang、MSVC</p>
165165
<blockquote>
166-
<p><img src="/img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/> 俗称“御三家”。</p>
166+
<p><img src="../img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/> 俗称“御三家”。</p>
167167
</blockquote>
168168
<p>这些编译器都支持了大部分 C++20 标准和小部分 C++23 标准,而 C++17 标准都是完全支持的。</p>
169169
<blockquote>
170-
<p><img src="/img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/> 有人说过:“如果你不知道一个人是用的什么编译器,那么你可以猜他用的是 GCC。”</p>
170+
<p><img src="../img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/> 有人说过:“如果你不知道一个人是用的什么编译器,那么你可以猜他用的是 GCC。”</p>
171171
</blockquote>
172172
<ul>
173173
<li>GCC 主要只在 Linux 和 MacOS 等 Unix 类系统可用,不支持 Windows 系统。但是 GCC 有着大量好用的扩展功能,例如大名鼎鼎的 <code>pbds</code>(基于策略的数据结构),还有各种 <code>__attribute__</code>,各种 <code>__builtin_</code> 系列函数。不过随着新标准的出台,很多原本属于 GCC 的功能都成了标准的一部分,例如 <code>__attribute__((warn_unused))</code> 变成了标准的 <code>[[nodiscard]]</code><code>__builtin_clz</code> 变成了标准的 <code>std::countl_zero</code><code>__VA_OPT__</code> 名字都没变就进了 C++20 标准。</li>
174174
</ul>
175175
<blockquote>
176-
<p><img src="/img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/> PBDS 又称 “平板电视”</p>
176+
<p><img src="../img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/> PBDS 又称 “平板电视”</p>
177177
</blockquote>
178178
<ul>
179179
<li>
@@ -184,13 +184,13 @@ <h2 id="_3">编译器御三家</h2>
184184
</li>
185185
</ul>
186186
<blockquote>
187-
<p><img src="/img/book.png" height="30px" width="auto" style="margin: 0; border: none"/> 例如 C++20 早已允许 lambda 表达式捕获 structural-binding 变量,而 Clang 至今还没有支持,尽管 Clang 已经支持了很多其他 C++20 特性。</p>
187+
<p><img src="../img/book.png" height="30px" width="auto" style="margin: 0; border: none"/> 例如 C++20 早已允许 lambda 表达式捕获 structural-binding 变量,而 Clang 至今还没有支持,尽管 Clang 已经支持了很多其他 C++20 特性。</p>
188188
</blockquote>
189189
<ul>
190190
<li>Apple Clang 是苹果公司自己魔改的 Clang 版本,只在 MacOS 系统上可用,支持 Objective-C 和 Swift 语言。但是版本较官方 Clang 落后一些,很多新特性都没有跟进,基本上只有专门伺候苹果的开发者会用。</li>
191191
</ul>
192192
<blockquote>
193-
<p><img src="/img/bulb.png" height="30px" width="auto" style="margin: 0; border: none"/> GCC 和 Clang 也支持 Objective-C。</p>
193+
<p><img src="../img/bulb.png" height="30px" width="auto" style="margin: 0; border: none"/> GCC 和 Clang 也支持 Objective-C。</p>
194194
</blockquote>
195195
<ul>
196196
<li>
@@ -201,7 +201,7 @@ <h2 id="_3">编译器御三家</h2>
201201
</li>
202202
</ul>
203203
<blockquote>
204-
<p><img src="/img/question.png" height="30px" width="auto" style="margin: 0; border: none"/> 最近他们又出了个 Intel DPC++ compiler,支持最新的并行编程领域特定语言 SyCL。</p>
204+
<p><img src="../img/question.png" height="30px" width="auto" style="margin: 0; border: none"/> 最近他们又出了个 Intel DPC++ compiler,支持最新的并行编程领域特定语言 SyCL。</p>
205205
</blockquote>
206206
<h2 id="_4">使用编译器编译源码</h2>
207207
<h3 id="msvc">MSVC</h3>
@@ -213,7 +213,7 @@ <h3 id="gcc">GCC</h3>
213213
</code></pre>
214214
<p>这样就可以得到可执行文件 <code>main</code> 了。</p>
215215
<blockquote>
216-
<p><img src="/img/bulb.png" height="30px" width="auto" style="margin: 0; border: none"/> Linux 系统的可执行文件并没有后缀名,所以没有 <code>.exe</code> 后缀。</p>
216+
<p><img src="../img/bulb.png" height="30px" width="auto" style="margin: 0; border: none"/> Linux 系统的可执行文件并没有后缀名,所以没有 <code>.exe</code> 后缀。</p>
217217
</blockquote>
218218
<h3 id="clang">Clang</h3>
219219
<p>Windows 上:</p>
@@ -292,7 +292,7 @@ <h2 id="_13">标准库御三家</h2>
292292
<p>值得注意的是,标准库和编译器并不是绑定的,例如 Clang 可以用 libstdc++ 或 MSVC STL,GCC 也可以被配置使用 libc++。</p>
293293
<p>在 Linux 系统中,Clang 默认用的就是 libstdc++。需要为 Clang 指定 <code>-stdlib=libc++</code> 选项,才能使用。</p>
294294
<blockquote>
295-
<p><img src="/img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/> 牛头人笑话:“如果你不知道一个人是用的什么标准库,那么你可以猜他用的是 libstdc++。因为即使他的编译器是 Clang,他用的大概率依然是 libstdc++。”</p>
295+
<p><img src="../img/awesomeface.png" height="30px" width="auto" style="margin: 0; border: none"/> 牛头人笑话:“如果你不知道一个人是用的什么标准库,那么你可以猜他用的是 libstdc++。因为即使他的编译器是 Clang,他用的大概率依然是 libstdc++。”</p>
296296
</blockquote>
297297
<h3 id="_14">标准库的调试模式</h3>
298298
<p>TODO</p></div>

0 commit comments

Comments
 (0)