diff --git a/docs/notes/01_c-basic/00_xdx/index.md b/docs/notes/01_c-basic/00_xdx/index.md index ab7e434..8b39e52 100644 --- a/docs/notes/01_c-basic/00_xdx/index.md +++ b/docs/notes/01_c-basic/00_xdx/index.md @@ -110,7 +110,7 @@ >- ① 存储器越往上速度越快,但是价格越来越贵, 越往下速度越慢,但是价格越来越便宜。 >- ② 正是由于计算机各个部件的速度不同,容量不同,价格不同,导致了计算机系统/编程中的各种问题以及相应的解决方案。 > ->总结:CPU 都是直接和内存打交道的,即:CPU 会直接从内存中读取数据,待数据处理完毕之后,会将结果再次写入到内存中;如果需要将数据持久化(永久)保存(内存是易失性存储器,内存中的数据是以电荷形式存储在存储单元中的。当计算机关闭或断电时,这些电荷很快消散,导致存储在内存中的数据丢失),那么就会内存中的数据再刷新到磁盘或硬盘上,即:落盘。 +>总结:CPU 都是直接和内存打交道的,即:CPU 会直接从内存中读取数据,待数据处理完毕之后,会将结果再次写入到内存中;如果需要将数据持久化(永久)保存(内存是易失性存储器,内存中的数据是以电荷形式存储在存储单元中的。当计算机关闭或断电时,这些电荷很快消散,导致存储在内存中的数据丢失),那么就需要将内存中的数据再刷新到磁盘或硬盘上,即:落盘。 ## 1.4 计算机软件 @@ -481,7 +481,7 @@ int main() { // 定义主函数 > * ② 系统、扎实的学习 C 语言可以让你了解底层硬件、一些简单的数据结构和算法,并培养计算机思维。 * C 语言是一门通用性的语言,并没有针对某个领域进行优化,在实际项目中,C 语言主要用于比较底层的开发,例如: - * Windows、Linux、Unix 等操作系统的内核 90% 以上都使用 C 语言开发(Rust 语言有望未来,在更多的操作系统开发中占据一席之地,特别是在对安全性和性能要求极高的领域)。 + * Windows、Linux、Unix 等操作系统的内核 90% 以上都使用 C 语言开发(Rust 语言有望未来,在操作系统开发中占据一席之地,特别是在对安全性和性能要求极高的领域)。 * 开发硬件驱动,让硬件和操作系统连接起来,这样用户才能更有效的使用硬件。 * 单片机和嵌入式属于软硬件的结合,是使用 C 语言最多的地方。 * 开发系统组件或服务,用于支撑上层应用。 diff --git a/docs/notes/01_c-basic/01_xdx/assets/1.jpg b/docs/notes/01_c-basic/01_xdx/assets/1.jpg deleted file mode 100644 index a0a752f..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/1.jpg and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/1.png b/docs/notes/01_c-basic/01_xdx/assets/1.png index f564cde..0a06e02 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/1.png and b/docs/notes/01_c-basic/01_xdx/assets/1.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/10.png b/docs/notes/01_c-basic/01_xdx/assets/10.png index 7adb100..7e20bc7 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/10.png and b/docs/notes/01_c-basic/01_xdx/assets/10.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/100.png b/docs/notes/01_c-basic/01_xdx/assets/100.png index 5497322..427d0da 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/100.png and b/docs/notes/01_c-basic/01_xdx/assets/100.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/101.png b/docs/notes/01_c-basic/01_xdx/assets/101.png index 806e57d..ae95fd6 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/101.png and b/docs/notes/01_c-basic/01_xdx/assets/101.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/102.png b/docs/notes/01_c-basic/01_xdx/assets/102.png index 07e0627..861c995 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/102.png and b/docs/notes/01_c-basic/01_xdx/assets/102.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/103.png b/docs/notes/01_c-basic/01_xdx/assets/103.png index 71b706d..5159db4 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/103.png and b/docs/notes/01_c-basic/01_xdx/assets/103.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/104.gif b/docs/notes/01_c-basic/01_xdx/assets/104.gif index 88080b7..78e968a 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/104.gif and b/docs/notes/01_c-basic/01_xdx/assets/104.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/104.png b/docs/notes/01_c-basic/01_xdx/assets/104.png deleted file mode 100644 index d86bfb1..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/104.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/105.gif b/docs/notes/01_c-basic/01_xdx/assets/105.gif index 09a94f7..7e92e4b 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/105.gif and b/docs/notes/01_c-basic/01_xdx/assets/105.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/105.png b/docs/notes/01_c-basic/01_xdx/assets/105.png deleted file mode 100644 index 69511a0..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/105.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/106.gif b/docs/notes/01_c-basic/01_xdx/assets/106.gif index 43e614c..3b31baa 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/106.gif and b/docs/notes/01_c-basic/01_xdx/assets/106.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/106.png b/docs/notes/01_c-basic/01_xdx/assets/106.png deleted file mode 100644 index ea4d131..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/106.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/107.png b/docs/notes/01_c-basic/01_xdx/assets/107.png index 2790766..2e9a3ef 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/107.png and b/docs/notes/01_c-basic/01_xdx/assets/107.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/108.png b/docs/notes/01_c-basic/01_xdx/assets/108.png index 4693479..4076696 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/108.png and b/docs/notes/01_c-basic/01_xdx/assets/108.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/109.png b/docs/notes/01_c-basic/01_xdx/assets/109.png index 427d0da..f016d0c 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/109.png and b/docs/notes/01_c-basic/01_xdx/assets/109.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/11.png b/docs/notes/01_c-basic/01_xdx/assets/11.png index 5f6dc7e..cd2a9c7 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/11.png and b/docs/notes/01_c-basic/01_xdx/assets/11.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/110.gif b/docs/notes/01_c-basic/01_xdx/assets/110.gif index 8e7f13e..beea99f 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/110.gif and b/docs/notes/01_c-basic/01_xdx/assets/110.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/111.gif b/docs/notes/01_c-basic/01_xdx/assets/111.gif index f6bd6e5..dffcc80 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/111.gif and b/docs/notes/01_c-basic/01_xdx/assets/111.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/112.gif b/docs/notes/01_c-basic/01_xdx/assets/112.gif new file mode 100644 index 0000000..68c8edc Binary files /dev/null and b/docs/notes/01_c-basic/01_xdx/assets/112.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/112.png b/docs/notes/01_c-basic/01_xdx/assets/112.png deleted file mode 100644 index 7cbd8ec..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/112.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/113.png b/docs/notes/01_c-basic/01_xdx/assets/113.png new file mode 100644 index 0000000..2ba4864 Binary files /dev/null and b/docs/notes/01_c-basic/01_xdx/assets/113.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/114.gif b/docs/notes/01_c-basic/01_xdx/assets/114.gif index 6ced42e..30538f0 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/114.gif and b/docs/notes/01_c-basic/01_xdx/assets/114.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/115.png b/docs/notes/01_c-basic/01_xdx/assets/115.png index 1007dc7..3deaf9e 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/115.png and b/docs/notes/01_c-basic/01_xdx/assets/115.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/116.png b/docs/notes/01_c-basic/01_xdx/assets/116.png index 07b1243..482e0ac 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/116.png and b/docs/notes/01_c-basic/01_xdx/assets/116.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/117.png b/docs/notes/01_c-basic/01_xdx/assets/117.png index 4076696..f052766 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/117.png and b/docs/notes/01_c-basic/01_xdx/assets/117.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/118.gif b/docs/notes/01_c-basic/01_xdx/assets/118.gif index 88080b7..643da5b 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/118.gif and b/docs/notes/01_c-basic/01_xdx/assets/118.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/119.gif b/docs/notes/01_c-basic/01_xdx/assets/119.gif index 09a94f7..0e78f9f 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/119.gif and b/docs/notes/01_c-basic/01_xdx/assets/119.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/12.jpg b/docs/notes/01_c-basic/01_xdx/assets/12.jpg deleted file mode 100644 index d822eb3..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/12.jpg and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/12.png b/docs/notes/01_c-basic/01_xdx/assets/12.png index 820ebb7..879f4b9 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/12.png and b/docs/notes/01_c-basic/01_xdx/assets/12.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/120.gif b/docs/notes/01_c-basic/01_xdx/assets/120.gif index 43e614c..ea466ac 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/120.gif and b/docs/notes/01_c-basic/01_xdx/assets/120.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/121.gif b/docs/notes/01_c-basic/01_xdx/assets/121.gif index 68c8edc..e2c28f4 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/121.gif and b/docs/notes/01_c-basic/01_xdx/assets/121.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/121.png b/docs/notes/01_c-basic/01_xdx/assets/121.png deleted file mode 100644 index 168e260..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/121.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/145.gif b/docs/notes/01_c-basic/01_xdx/assets/122.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/145.gif rename to docs/notes/01_c-basic/01_xdx/assets/122.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/122.png b/docs/notes/01_c-basic/01_xdx/assets/122.png deleted file mode 100644 index 2022a3d..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/122.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/123.gif b/docs/notes/01_c-basic/01_xdx/assets/123.gif index 30538f0..a78934c 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/123.gif and b/docs/notes/01_c-basic/01_xdx/assets/123.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/123.png b/docs/notes/01_c-basic/01_xdx/assets/123.png deleted file mode 100644 index 427d0da..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/123.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/124.png b/docs/notes/01_c-basic/01_xdx/assets/124.png index ae95fd6..e34853d 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/124.png and b/docs/notes/01_c-basic/01_xdx/assets/124.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/125.gif b/docs/notes/01_c-basic/01_xdx/assets/125.gif index 181bac1..f7dc22a 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/125.gif and b/docs/notes/01_c-basic/01_xdx/assets/125.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/125.png b/docs/notes/01_c-basic/01_xdx/assets/125.png deleted file mode 100644 index 861c995..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/125.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/126.gif b/docs/notes/01_c-basic/01_xdx/assets/126.gif index 103a50a..5bc7a5c 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/126.gif and b/docs/notes/01_c-basic/01_xdx/assets/126.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/126.png b/docs/notes/01_c-basic/01_xdx/assets/126.png deleted file mode 100644 index 5159db4..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/126.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/127.gif b/docs/notes/01_c-basic/01_xdx/assets/127.gif index 78e968a..5edcd16 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/127.gif and b/docs/notes/01_c-basic/01_xdx/assets/127.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/128.gif b/docs/notes/01_c-basic/01_xdx/assets/128.gif index 7e92e4b..e01c95d 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/128.gif and b/docs/notes/01_c-basic/01_xdx/assets/128.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/129.gif b/docs/notes/01_c-basic/01_xdx/assets/129.gif index 3b31baa..cc77b91 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/129.gif and b/docs/notes/01_c-basic/01_xdx/assets/129.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/13.png b/docs/notes/01_c-basic/01_xdx/assets/13.png index 78f67c2..516fa4c 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/13.png and b/docs/notes/01_c-basic/01_xdx/assets/13.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/153.gif b/docs/notes/01_c-basic/01_xdx/assets/130.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/153.gif rename to docs/notes/01_c-basic/01_xdx/assets/130.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/130.png b/docs/notes/01_c-basic/01_xdx/assets/130.png deleted file mode 100644 index 2e9a3ef..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/130.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/131.png b/docs/notes/01_c-basic/01_xdx/assets/131.png index 4076696..41f14bd 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/131.png and b/docs/notes/01_c-basic/01_xdx/assets/131.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/132.png b/docs/notes/01_c-basic/01_xdx/assets/132.png index f016d0c..980f568 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/132.png and b/docs/notes/01_c-basic/01_xdx/assets/132.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/133.gif b/docs/notes/01_c-basic/01_xdx/assets/133.gif index beea99f..339ab2a 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/133.gif and b/docs/notes/01_c-basic/01_xdx/assets/133.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/134.gif b/docs/notes/01_c-basic/01_xdx/assets/134.gif deleted file mode 100644 index dffcc80..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/134.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/157.png b/docs/notes/01_c-basic/01_xdx/assets/134.png similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/157.png rename to docs/notes/01_c-basic/01_xdx/assets/134.png diff --git a/docs/notes/01_c-basic/01_xdx/assets/135.gif b/docs/notes/01_c-basic/01_xdx/assets/135.gif index 68c8edc..389f147 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/135.gif and b/docs/notes/01_c-basic/01_xdx/assets/135.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/136.png b/docs/notes/01_c-basic/01_xdx/assets/136.png index 2ba4864..af9b61a 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/136.png and b/docs/notes/01_c-basic/01_xdx/assets/136.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/137.gif b/docs/notes/01_c-basic/01_xdx/assets/137.gif index 30538f0..181bac1 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/137.gif and b/docs/notes/01_c-basic/01_xdx/assets/137.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/138.gif b/docs/notes/01_c-basic/01_xdx/assets/138.gif index a78934c..103a50a 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/138.gif and b/docs/notes/01_c-basic/01_xdx/assets/138.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/138.png b/docs/notes/01_c-basic/01_xdx/assets/138.png deleted file mode 100644 index 3deaf9e..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/138.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/139.gif b/docs/notes/01_c-basic/01_xdx/assets/139.gif new file mode 100644 index 0000000..5e49062 Binary files /dev/null and b/docs/notes/01_c-basic/01_xdx/assets/139.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/139.png b/docs/notes/01_c-basic/01_xdx/assets/139.png deleted file mode 100644 index 482e0ac..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/139.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/14.png b/docs/notes/01_c-basic/01_xdx/assets/14.png index 8a52912..6bb5a43 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/14.png and b/docs/notes/01_c-basic/01_xdx/assets/14.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/140.gif b/docs/notes/01_c-basic/01_xdx/assets/140.gif index f7dc22a..3686a3f 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/140.gif and b/docs/notes/01_c-basic/01_xdx/assets/140.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/140.png b/docs/notes/01_c-basic/01_xdx/assets/140.png deleted file mode 100644 index f052766..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/140.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/141.gif b/docs/notes/01_c-basic/01_xdx/assets/141.gif index 643da5b..cb8ae8f 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/141.gif and b/docs/notes/01_c-basic/01_xdx/assets/141.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/142.gif b/docs/notes/01_c-basic/01_xdx/assets/142.gif deleted file mode 100644 index 0e78f9f..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/142.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/166.png b/docs/notes/01_c-basic/01_xdx/assets/142.png similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/166.png rename to docs/notes/01_c-basic/01_xdx/assets/142.png diff --git a/docs/notes/01_c-basic/01_xdx/assets/143.gif b/docs/notes/01_c-basic/01_xdx/assets/143.gif deleted file mode 100644 index ea466ac..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/143.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/143.png b/docs/notes/01_c-basic/01_xdx/assets/143.png new file mode 100644 index 0000000..c234bd3 Binary files /dev/null and b/docs/notes/01_c-basic/01_xdx/assets/143.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/144.gif b/docs/notes/01_c-basic/01_xdx/assets/144.gif index e2c28f4..17b36d0 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/144.gif and b/docs/notes/01_c-basic/01_xdx/assets/144.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/145.png b/docs/notes/01_c-basic/01_xdx/assets/145.png new file mode 100644 index 0000000..6098eef Binary files /dev/null and b/docs/notes/01_c-basic/01_xdx/assets/145.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/146.gif b/docs/notes/01_c-basic/01_xdx/assets/146.gif index a78934c..f6006c6 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/146.gif and b/docs/notes/01_c-basic/01_xdx/assets/146.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/147.gif b/docs/notes/01_c-basic/01_xdx/assets/147.gif new file mode 100644 index 0000000..68ed8b1 Binary files /dev/null and b/docs/notes/01_c-basic/01_xdx/assets/147.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/147.png b/docs/notes/01_c-basic/01_xdx/assets/147.png deleted file mode 100644 index e34853d..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/147.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/148.gif b/docs/notes/01_c-basic/01_xdx/assets/148.gif index f7dc22a..afbe36b 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/148.gif and b/docs/notes/01_c-basic/01_xdx/assets/148.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/149.gif b/docs/notes/01_c-basic/01_xdx/assets/149.gif index 5bc7a5c..482eb91 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/149.gif and b/docs/notes/01_c-basic/01_xdx/assets/149.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/15.png b/docs/notes/01_c-basic/01_xdx/assets/15.png index 7c81fe3..e51e4cf 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/15.png and b/docs/notes/01_c-basic/01_xdx/assets/15.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/150.gif b/docs/notes/01_c-basic/01_xdx/assets/150.gif index 5edcd16..cafd30f 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/150.gif and b/docs/notes/01_c-basic/01_xdx/assets/150.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/151.gif b/docs/notes/01_c-basic/01_xdx/assets/151.gif index e01c95d..f150246 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/151.gif and b/docs/notes/01_c-basic/01_xdx/assets/151.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/152.gif b/docs/notes/01_c-basic/01_xdx/assets/152.gif deleted file mode 100644 index cc77b91..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/152.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/176.png b/docs/notes/01_c-basic/01_xdx/assets/152.png similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/176.png rename to docs/notes/01_c-basic/01_xdx/assets/152.png diff --git a/docs/notes/01_c-basic/01_xdx/assets/177.png b/docs/notes/01_c-basic/01_xdx/assets/153.png similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/177.png rename to docs/notes/01_c-basic/01_xdx/assets/153.png diff --git a/docs/notes/01_c-basic/01_xdx/assets/178.gif b/docs/notes/01_c-basic/01_xdx/assets/154.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/178.gif rename to docs/notes/01_c-basic/01_xdx/assets/154.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/154.png b/docs/notes/01_c-basic/01_xdx/assets/154.png deleted file mode 100644 index 41f14bd..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/154.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/179.gif b/docs/notes/01_c-basic/01_xdx/assets/155.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/179.gif rename to docs/notes/01_c-basic/01_xdx/assets/155.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/155.png b/docs/notes/01_c-basic/01_xdx/assets/155.png deleted file mode 100644 index 980f568..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/155.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/156.gif b/docs/notes/01_c-basic/01_xdx/assets/156.gif index 339ab2a..fda0a09 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/156.gif and b/docs/notes/01_c-basic/01_xdx/assets/156.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/181.gif b/docs/notes/01_c-basic/01_xdx/assets/157.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/181.gif rename to docs/notes/01_c-basic/01_xdx/assets/157.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/158.gif b/docs/notes/01_c-basic/01_xdx/assets/158.gif index 389f147..eb23c16 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/158.gif and b/docs/notes/01_c-basic/01_xdx/assets/158.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/183.gif b/docs/notes/01_c-basic/01_xdx/assets/159.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/183.gif rename to docs/notes/01_c-basic/01_xdx/assets/159.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/159.png b/docs/notes/01_c-basic/01_xdx/assets/159.png deleted file mode 100644 index af9b61a..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/159.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/16.png b/docs/notes/01_c-basic/01_xdx/assets/16.png index f564cde..818d693 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/16.png and b/docs/notes/01_c-basic/01_xdx/assets/16.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/160.gif b/docs/notes/01_c-basic/01_xdx/assets/160.gif index 181bac1..6000225 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/160.gif and b/docs/notes/01_c-basic/01_xdx/assets/160.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/161.gif b/docs/notes/01_c-basic/01_xdx/assets/161.gif index 103a50a..86ad0ca 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/161.gif and b/docs/notes/01_c-basic/01_xdx/assets/161.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/162.gif b/docs/notes/01_c-basic/01_xdx/assets/162.gif index 5e49062..662319e 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/162.gif and b/docs/notes/01_c-basic/01_xdx/assets/162.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/163.gif b/docs/notes/01_c-basic/01_xdx/assets/163.gif index 3686a3f..11ddab5 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/163.gif and b/docs/notes/01_c-basic/01_xdx/assets/163.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/164.gif b/docs/notes/01_c-basic/01_xdx/assets/164.gif index cb8ae8f..2325cf0 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/164.gif and b/docs/notes/01_c-basic/01_xdx/assets/164.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/189.png b/docs/notes/01_c-basic/01_xdx/assets/165.png similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/189.png rename to docs/notes/01_c-basic/01_xdx/assets/165.png diff --git a/docs/notes/01_c-basic/01_xdx/assets/190.gif b/docs/notes/01_c-basic/01_xdx/assets/166.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/190.gif rename to docs/notes/01_c-basic/01_xdx/assets/166.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/167.png b/docs/notes/01_c-basic/01_xdx/assets/167.png index c234bd3..77fb5e3 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/167.png and b/docs/notes/01_c-basic/01_xdx/assets/167.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/168.gif b/docs/notes/01_c-basic/01_xdx/assets/168.gif deleted file mode 100644 index 17b36d0..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/168.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/192.png b/docs/notes/01_c-basic/01_xdx/assets/168.png similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/192.png rename to docs/notes/01_c-basic/01_xdx/assets/168.png diff --git a/docs/notes/01_c-basic/01_xdx/assets/169.png b/docs/notes/01_c-basic/01_xdx/assets/169.png index 6098eef..3a914fe 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/169.png and b/docs/notes/01_c-basic/01_xdx/assets/169.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/17.png b/docs/notes/01_c-basic/01_xdx/assets/17.png index d22418c..a83195b 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/17.png and b/docs/notes/01_c-basic/01_xdx/assets/17.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/170.gif b/docs/notes/01_c-basic/01_xdx/assets/170.gif index f6006c6..f95a8f4 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/170.gif and b/docs/notes/01_c-basic/01_xdx/assets/170.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/171.gif b/docs/notes/01_c-basic/01_xdx/assets/171.gif index 68ed8b1..28d7761 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/171.gif and b/docs/notes/01_c-basic/01_xdx/assets/171.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/172.gif b/docs/notes/01_c-basic/01_xdx/assets/172.gif deleted file mode 100644 index afbe36b..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/172.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/196.png b/docs/notes/01_c-basic/01_xdx/assets/172.png similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/196.png rename to docs/notes/01_c-basic/01_xdx/assets/172.png diff --git a/docs/notes/01_c-basic/01_xdx/assets/173.gif b/docs/notes/01_c-basic/01_xdx/assets/173.gif deleted file mode 100644 index 482eb91..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/173.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/197.png b/docs/notes/01_c-basic/01_xdx/assets/173.png similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/197.png rename to docs/notes/01_c-basic/01_xdx/assets/173.png diff --git a/docs/notes/01_c-basic/01_xdx/assets/174.gif b/docs/notes/01_c-basic/01_xdx/assets/174.gif deleted file mode 100644 index cafd30f..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/174.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/175.gif b/docs/notes/01_c-basic/01_xdx/assets/175.gif deleted file mode 100644 index f150246..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/175.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/18.png b/docs/notes/01_c-basic/01_xdx/assets/18.png index fd9fc8f..e6a6d7c 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/18.png and b/docs/notes/01_c-basic/01_xdx/assets/18.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/180.gif b/docs/notes/01_c-basic/01_xdx/assets/180.gif deleted file mode 100644 index fda0a09..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/180.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/182.gif b/docs/notes/01_c-basic/01_xdx/assets/182.gif deleted file mode 100644 index eb23c16..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/182.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/184.gif b/docs/notes/01_c-basic/01_xdx/assets/184.gif deleted file mode 100644 index 6000225..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/184.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/185.gif b/docs/notes/01_c-basic/01_xdx/assets/185.gif deleted file mode 100644 index 86ad0ca..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/185.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/186.gif b/docs/notes/01_c-basic/01_xdx/assets/186.gif deleted file mode 100644 index 662319e..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/186.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/187.gif b/docs/notes/01_c-basic/01_xdx/assets/187.gif deleted file mode 100644 index 11ddab5..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/187.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/188.gif b/docs/notes/01_c-basic/01_xdx/assets/188.gif deleted file mode 100644 index 2325cf0..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/188.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/19.png b/docs/notes/01_c-basic/01_xdx/assets/19.png index 5ff1eaf..bb666c8 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/19.png and b/docs/notes/01_c-basic/01_xdx/assets/19.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/191.png b/docs/notes/01_c-basic/01_xdx/assets/191.png deleted file mode 100644 index 77fb5e3..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/191.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/193.png b/docs/notes/01_c-basic/01_xdx/assets/193.png deleted file mode 100644 index 3a914fe..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/193.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/194.gif b/docs/notes/01_c-basic/01_xdx/assets/194.gif deleted file mode 100644 index f95a8f4..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/194.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/195.gif b/docs/notes/01_c-basic/01_xdx/assets/195.gif deleted file mode 100644 index 28d7761..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/195.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/2.png b/docs/notes/01_c-basic/01_xdx/assets/2.png index 68c6b3e..5044ea9 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/2.png and b/docs/notes/01_c-basic/01_xdx/assets/2.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/20.png b/docs/notes/01_c-basic/01_xdx/assets/20.png index 68a4aac..69ac1cf 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/20.png and b/docs/notes/01_c-basic/01_xdx/assets/20.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/21.png b/docs/notes/01_c-basic/01_xdx/assets/21.png index c187c0b..c4b92b4 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/21.png and b/docs/notes/01_c-basic/01_xdx/assets/21.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/22.png b/docs/notes/01_c-basic/01_xdx/assets/22.png index 9d71ebd..f53407f 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/22.png and b/docs/notes/01_c-basic/01_xdx/assets/22.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/23.png b/docs/notes/01_c-basic/01_xdx/assets/23.png index 9255720..4b7c69b 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/23.png and b/docs/notes/01_c-basic/01_xdx/assets/23.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/24.png b/docs/notes/01_c-basic/01_xdx/assets/24.png index 0a06e02..f2eef8a 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/24.png and b/docs/notes/01_c-basic/01_xdx/assets/24.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/25.png b/docs/notes/01_c-basic/01_xdx/assets/25.png index 5044ea9..f3d7446 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/25.png and b/docs/notes/01_c-basic/01_xdx/assets/25.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/26.png b/docs/notes/01_c-basic/01_xdx/assets/26.png index 0ccd7e2..bc2aea4 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/26.png and b/docs/notes/01_c-basic/01_xdx/assets/26.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/27.png b/docs/notes/01_c-basic/01_xdx/assets/27.png index 820ebb7..29e61a3 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/27.png and b/docs/notes/01_c-basic/01_xdx/assets/27.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/28.png b/docs/notes/01_c-basic/01_xdx/assets/28.png index c322baa..66efe1c 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/28.png and b/docs/notes/01_c-basic/01_xdx/assets/28.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/29.png b/docs/notes/01_c-basic/01_xdx/assets/29.png index 9c9d743..67565ef 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/29.png and b/docs/notes/01_c-basic/01_xdx/assets/29.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/3.jpg b/docs/notes/01_c-basic/01_xdx/assets/3.jpg deleted file mode 100644 index 0873e90..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/3.jpg and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/3.png b/docs/notes/01_c-basic/01_xdx/assets/3.png index fd9fc8f..0ccd7e2 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/3.png and b/docs/notes/01_c-basic/01_xdx/assets/3.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/30.png b/docs/notes/01_c-basic/01_xdx/assets/30.png index 57a6dfd..7e69527 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/30.png and b/docs/notes/01_c-basic/01_xdx/assets/30.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/31.png b/docs/notes/01_c-basic/01_xdx/assets/31.png index cf9dd38..6014f53 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/31.png and b/docs/notes/01_c-basic/01_xdx/assets/31.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/32.gif b/docs/notes/01_c-basic/01_xdx/assets/32.gif deleted file mode 100644 index 5b5b2a9..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/32.gif and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/32.png b/docs/notes/01_c-basic/01_xdx/assets/32.png index f2eef8a..f5d79ad 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/32.png and b/docs/notes/01_c-basic/01_xdx/assets/32.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/33.png b/docs/notes/01_c-basic/01_xdx/assets/33.png index 7e20bc7..e8f99ce 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/33.png and b/docs/notes/01_c-basic/01_xdx/assets/33.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/34.png b/docs/notes/01_c-basic/01_xdx/assets/34.png index cd2a9c7..e02205d 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/34.png and b/docs/notes/01_c-basic/01_xdx/assets/34.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/58.gif b/docs/notes/01_c-basic/01_xdx/assets/35.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/58.gif rename to docs/notes/01_c-basic/01_xdx/assets/35.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/35.png b/docs/notes/01_c-basic/01_xdx/assets/35.png deleted file mode 100644 index 879f4b9..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/35.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/59.gif b/docs/notes/01_c-basic/01_xdx/assets/36.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/59.gif rename to docs/notes/01_c-basic/01_xdx/assets/36.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/36.png b/docs/notes/01_c-basic/01_xdx/assets/36.png deleted file mode 100644 index 516fa4c..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/36.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/37.png b/docs/notes/01_c-basic/01_xdx/assets/37.png index 6bb5a43..5b03420 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/37.png and b/docs/notes/01_c-basic/01_xdx/assets/37.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/38.png b/docs/notes/01_c-basic/01_xdx/assets/38.png index e51e4cf..deec4ce 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/38.png and b/docs/notes/01_c-basic/01_xdx/assets/38.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/39.png b/docs/notes/01_c-basic/01_xdx/assets/39.png index 818d693..d3b974a 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/39.png and b/docs/notes/01_c-basic/01_xdx/assets/39.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/4.png b/docs/notes/01_c-basic/01_xdx/assets/4.png index 973d6ee..820ebb7 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/4.png and b/docs/notes/01_c-basic/01_xdx/assets/4.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/40.png b/docs/notes/01_c-basic/01_xdx/assets/40.png index a83195b..e8c509b 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/40.png and b/docs/notes/01_c-basic/01_xdx/assets/40.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/41.png b/docs/notes/01_c-basic/01_xdx/assets/41.png index e6a6d7c..4c8ddb1 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/41.png and b/docs/notes/01_c-basic/01_xdx/assets/41.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/42.png b/docs/notes/01_c-basic/01_xdx/assets/42.png index bb666c8..3dcef53 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/42.png and b/docs/notes/01_c-basic/01_xdx/assets/42.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/43.png b/docs/notes/01_c-basic/01_xdx/assets/43.png index 69ac1cf..d96231f 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/43.png and b/docs/notes/01_c-basic/01_xdx/assets/43.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/44.png b/docs/notes/01_c-basic/01_xdx/assets/44.png index c4b92b4..18cee74 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/44.png and b/docs/notes/01_c-basic/01_xdx/assets/44.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/45.png b/docs/notes/01_c-basic/01_xdx/assets/45.png index f53407f..7ab6c69 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/45.png and b/docs/notes/01_c-basic/01_xdx/assets/45.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/46.png b/docs/notes/01_c-basic/01_xdx/assets/46.png index 4b7c69b..a2e38ca 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/46.png and b/docs/notes/01_c-basic/01_xdx/assets/46.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/47.png b/docs/notes/01_c-basic/01_xdx/assets/47.png index f2eef8a..eca4ba5 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/47.png and b/docs/notes/01_c-basic/01_xdx/assets/47.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/48.png b/docs/notes/01_c-basic/01_xdx/assets/48.png index f3d7446..7001b73 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/48.png and b/docs/notes/01_c-basic/01_xdx/assets/48.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/49.png b/docs/notes/01_c-basic/01_xdx/assets/49.png index bc2aea4..eb4b043 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/49.png and b/docs/notes/01_c-basic/01_xdx/assets/49.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/5.jpg b/docs/notes/01_c-basic/01_xdx/assets/5.jpg deleted file mode 100644 index 2b61d98..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/5.jpg and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/5.png b/docs/notes/01_c-basic/01_xdx/assets/5.png index 68a4aac..c322baa 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/5.png and b/docs/notes/01_c-basic/01_xdx/assets/5.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/50.png b/docs/notes/01_c-basic/01_xdx/assets/50.png index 29e61a3..969f9f1 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/50.png and b/docs/notes/01_c-basic/01_xdx/assets/50.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/51.png b/docs/notes/01_c-basic/01_xdx/assets/51.png index 66efe1c..3701026 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/51.png and b/docs/notes/01_c-basic/01_xdx/assets/51.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/52.png b/docs/notes/01_c-basic/01_xdx/assets/52.png index 67565ef..abaa9bd 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/52.png and b/docs/notes/01_c-basic/01_xdx/assets/52.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/53.png b/docs/notes/01_c-basic/01_xdx/assets/53.png index 7e69527..976273d 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/53.png and b/docs/notes/01_c-basic/01_xdx/assets/53.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/54.png b/docs/notes/01_c-basic/01_xdx/assets/54.png index 6014f53..969b011 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/54.png and b/docs/notes/01_c-basic/01_xdx/assets/54.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/55.png b/docs/notes/01_c-basic/01_xdx/assets/55.png index f5d79ad..24dba88 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/55.png and b/docs/notes/01_c-basic/01_xdx/assets/55.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/56.png b/docs/notes/01_c-basic/01_xdx/assets/56.png index e8f99ce..4a340d6 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/56.png and b/docs/notes/01_c-basic/01_xdx/assets/56.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/57.png b/docs/notes/01_c-basic/01_xdx/assets/57.png index e02205d..67b34b7 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/57.png and b/docs/notes/01_c-basic/01_xdx/assets/57.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/58.png b/docs/notes/01_c-basic/01_xdx/assets/58.png new file mode 100644 index 0000000..de50a66 Binary files /dev/null and b/docs/notes/01_c-basic/01_xdx/assets/58.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/59.png b/docs/notes/01_c-basic/01_xdx/assets/59.png index 969f9f1..cc05902 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/59.png and b/docs/notes/01_c-basic/01_xdx/assets/59.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/6.png b/docs/notes/01_c-basic/01_xdx/assets/6.png index 7d97a4c..9c9d743 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/6.png and b/docs/notes/01_c-basic/01_xdx/assets/6.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/60.png b/docs/notes/01_c-basic/01_xdx/assets/60.png index 5b03420..917fe9a 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/60.png and b/docs/notes/01_c-basic/01_xdx/assets/60.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/61.png b/docs/notes/01_c-basic/01_xdx/assets/61.png index deec4ce..b45ee07 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/61.png and b/docs/notes/01_c-basic/01_xdx/assets/61.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/62.png b/docs/notes/01_c-basic/01_xdx/assets/62.png index d3b974a..fc61e09 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/62.png and b/docs/notes/01_c-basic/01_xdx/assets/62.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/63.png b/docs/notes/01_c-basic/01_xdx/assets/63.png index e8c509b..731ab8a 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/63.png and b/docs/notes/01_c-basic/01_xdx/assets/63.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/64.png b/docs/notes/01_c-basic/01_xdx/assets/64.png index 4c8ddb1..2f6920a 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/64.png and b/docs/notes/01_c-basic/01_xdx/assets/64.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/65.png b/docs/notes/01_c-basic/01_xdx/assets/65.png index 3dcef53..704d398 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/65.png and b/docs/notes/01_c-basic/01_xdx/assets/65.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/66.png b/docs/notes/01_c-basic/01_xdx/assets/66.png index d96231f..ba69231 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/66.png and b/docs/notes/01_c-basic/01_xdx/assets/66.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/67.png b/docs/notes/01_c-basic/01_xdx/assets/67.png index 18cee74..7bde91b 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/67.png and b/docs/notes/01_c-basic/01_xdx/assets/67.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/68.png b/docs/notes/01_c-basic/01_xdx/assets/68.png index 7ab6c69..14f7f8c 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/68.png and b/docs/notes/01_c-basic/01_xdx/assets/68.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/69.png b/docs/notes/01_c-basic/01_xdx/assets/69.png index a2e38ca..279c412 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/69.png and b/docs/notes/01_c-basic/01_xdx/assets/69.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/7.png b/docs/notes/01_c-basic/01_xdx/assets/7.png index fe9e3c7..57a6dfd 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/7.png and b/docs/notes/01_c-basic/01_xdx/assets/7.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/70.png b/docs/notes/01_c-basic/01_xdx/assets/70.png index eca4ba5..7f3c71f 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/70.png and b/docs/notes/01_c-basic/01_xdx/assets/70.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/71.png b/docs/notes/01_c-basic/01_xdx/assets/71.png index 7001b73..b86a1e1 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/71.png and b/docs/notes/01_c-basic/01_xdx/assets/71.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/72.png b/docs/notes/01_c-basic/01_xdx/assets/72.png index eb4b043..9e6f050 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/72.png and b/docs/notes/01_c-basic/01_xdx/assets/72.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/73.png b/docs/notes/01_c-basic/01_xdx/assets/73.png index 969f9f1..3deb8fa 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/73.png and b/docs/notes/01_c-basic/01_xdx/assets/73.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/74.png b/docs/notes/01_c-basic/01_xdx/assets/74.png index 3701026..1151c63 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/74.png and b/docs/notes/01_c-basic/01_xdx/assets/74.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/75.png b/docs/notes/01_c-basic/01_xdx/assets/75.png index abaa9bd..46ffa21 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/75.png and b/docs/notes/01_c-basic/01_xdx/assets/75.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/76.png b/docs/notes/01_c-basic/01_xdx/assets/76.png index 976273d..5c92607 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/76.png and b/docs/notes/01_c-basic/01_xdx/assets/76.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/77.png b/docs/notes/01_c-basic/01_xdx/assets/77.png index 969b011..5497322 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/77.png and b/docs/notes/01_c-basic/01_xdx/assets/77.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/78.png b/docs/notes/01_c-basic/01_xdx/assets/78.png index 24dba88..806e57d 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/78.png and b/docs/notes/01_c-basic/01_xdx/assets/78.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/79.png b/docs/notes/01_c-basic/01_xdx/assets/79.png index 4a340d6..07e0627 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/79.png and b/docs/notes/01_c-basic/01_xdx/assets/79.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/8.png b/docs/notes/01_c-basic/01_xdx/assets/8.png index cf98d6a..cf9dd38 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/8.png and b/docs/notes/01_c-basic/01_xdx/assets/8.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/80.png b/docs/notes/01_c-basic/01_xdx/assets/80.png index 67b34b7..71b706d 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/80.png and b/docs/notes/01_c-basic/01_xdx/assets/80.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/81.png b/docs/notes/01_c-basic/01_xdx/assets/81.png index de50a66..d86bfb1 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/81.png and b/docs/notes/01_c-basic/01_xdx/assets/81.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/82.png b/docs/notes/01_c-basic/01_xdx/assets/82.png index cc05902..69511a0 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/82.png and b/docs/notes/01_c-basic/01_xdx/assets/82.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/83.png b/docs/notes/01_c-basic/01_xdx/assets/83.png index 917fe9a..ea4d131 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/83.png and b/docs/notes/01_c-basic/01_xdx/assets/83.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/84.png b/docs/notes/01_c-basic/01_xdx/assets/84.png index b45ee07..2790766 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/84.png and b/docs/notes/01_c-basic/01_xdx/assets/84.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/85.png b/docs/notes/01_c-basic/01_xdx/assets/85.png index fc61e09..4693479 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/85.png and b/docs/notes/01_c-basic/01_xdx/assets/85.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/109.gif b/docs/notes/01_c-basic/01_xdx/assets/86.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/109.gif rename to docs/notes/01_c-basic/01_xdx/assets/86.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/86.png b/docs/notes/01_c-basic/01_xdx/assets/86.png deleted file mode 100644 index 731ab8a..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/86.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/87.gif b/docs/notes/01_c-basic/01_xdx/assets/87.gif new file mode 100644 index 0000000..8e7f13e Binary files /dev/null and b/docs/notes/01_c-basic/01_xdx/assets/87.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/87.png b/docs/notes/01_c-basic/01_xdx/assets/87.png deleted file mode 100644 index 2f6920a..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/87.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/88.gif b/docs/notes/01_c-basic/01_xdx/assets/88.gif new file mode 100644 index 0000000..f6bd6e5 Binary files /dev/null and b/docs/notes/01_c-basic/01_xdx/assets/88.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/88.png b/docs/notes/01_c-basic/01_xdx/assets/88.png deleted file mode 100644 index 704d398..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/88.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/89.png b/docs/notes/01_c-basic/01_xdx/assets/89.png index ba69231..7cbd8ec 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/89.png and b/docs/notes/01_c-basic/01_xdx/assets/89.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/17.gif b/docs/notes/01_c-basic/01_xdx/assets/9.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/17.gif rename to docs/notes/01_c-basic/01_xdx/assets/9.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/9.png b/docs/notes/01_c-basic/01_xdx/assets/9.png deleted file mode 100644 index 78f67c2..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/9.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/113.gif b/docs/notes/01_c-basic/01_xdx/assets/90.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/113.gif rename to docs/notes/01_c-basic/01_xdx/assets/90.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/90.png b/docs/notes/01_c-basic/01_xdx/assets/90.png deleted file mode 100644 index 7bde91b..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/90.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/91.gif b/docs/notes/01_c-basic/01_xdx/assets/91.gif new file mode 100644 index 0000000..6ced42e Binary files /dev/null and b/docs/notes/01_c-basic/01_xdx/assets/91.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/91.png b/docs/notes/01_c-basic/01_xdx/assets/91.png deleted file mode 100644 index 14f7f8c..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/91.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/92.png b/docs/notes/01_c-basic/01_xdx/assets/92.png index 279c412..1007dc7 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/92.png and b/docs/notes/01_c-basic/01_xdx/assets/92.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/93.png b/docs/notes/01_c-basic/01_xdx/assets/93.png index 7f3c71f..07b1243 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/93.png and b/docs/notes/01_c-basic/01_xdx/assets/93.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/117.gif b/docs/notes/01_c-basic/01_xdx/assets/94.gif similarity index 100% rename from docs/notes/01_c-basic/01_xdx/assets/117.gif rename to docs/notes/01_c-basic/01_xdx/assets/94.gif diff --git a/docs/notes/01_c-basic/01_xdx/assets/94.png b/docs/notes/01_c-basic/01_xdx/assets/94.png deleted file mode 100644 index b86a1e1..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/94.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/95.gif b/docs/notes/01_c-basic/01_xdx/assets/95.gif index e6b2b41..88080b7 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/95.gif and b/docs/notes/01_c-basic/01_xdx/assets/95.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/95.png b/docs/notes/01_c-basic/01_xdx/assets/95.png deleted file mode 100644 index 9e6f050..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/95.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/96.gif b/docs/notes/01_c-basic/01_xdx/assets/96.gif index 8e7f13e..09a94f7 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/96.gif and b/docs/notes/01_c-basic/01_xdx/assets/96.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/96.png b/docs/notes/01_c-basic/01_xdx/assets/96.png deleted file mode 100644 index 3deb8fa..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/96.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/97.gif b/docs/notes/01_c-basic/01_xdx/assets/97.gif index f6bd6e5..43e614c 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/97.gif and b/docs/notes/01_c-basic/01_xdx/assets/97.gif differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/97.png b/docs/notes/01_c-basic/01_xdx/assets/97.png deleted file mode 100644 index 1151c63..0000000 Binary files a/docs/notes/01_c-basic/01_xdx/assets/97.png and /dev/null differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/98.png b/docs/notes/01_c-basic/01_xdx/assets/98.png index 46ffa21..168e260 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/98.png and b/docs/notes/01_c-basic/01_xdx/assets/98.png differ diff --git a/docs/notes/01_c-basic/01_xdx/assets/99.png b/docs/notes/01_c-basic/01_xdx/assets/99.png index 5c92607..2022a3d 100644 Binary files a/docs/notes/01_c-basic/01_xdx/assets/99.png and b/docs/notes/01_c-basic/01_xdx/assets/99.png differ diff --git a/docs/notes/01_c-basic/01_xdx/index.md b/docs/notes/01_c-basic/01_xdx/index.md index 78fbea0..07d635d 100644 --- a/docs/notes/01_c-basic/01_xdx/index.md +++ b/docs/notes/01_c-basic/01_xdx/index.md @@ -7,7 +7,6 @@ * 要开发 C/C++ 程序,需要安装 C/C++ 编译器,目前有两种主流实现,即: * GCC(GNU Compiler Collection):全平台实现,即支持 Windows、MacOS、Linux 等。 * MSVC(Microsoft Visual C++):只支持 Windows 系统。 - * GCC 在 Windows 上的版本有很多,如:[MinGW-w64](https://www.mingw-w64.org/)、[Gygwin](https://cygwin.com/)、[MSYS2](https://www.msys2.org/)。它们之间的区别,如下所示: | 特性 | MinGW-w64 | Cygwin | MSYS2 | @@ -38,11 +37,11 @@ > > 下载地址在[这里](https://github.com/niXman/mingw-builds-binaries/releases/download/13.2.0-rt_v11-rev1/x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev1.7z)。 -![](./assets/24.png) +![](./assets/1.png) * 解压到指定的目录,即: -![](./assets/25.png) +![](./assets/2.png) > [!NOTE] > @@ -52,21 +51,21 @@ * 配置环境变量,以便任意目录都可以执行 gcc 命令,即: -![](./assets/26.png) +![](./assets/3.png) -![](./assets/27.png) +![](./assets/4.png) -![](./assets/28.png) +![](./assets/5.png) -![](./assets/29.png) +![](./assets/6.png) -![](./assets/30.png) +![](./assets/7.png) > [!NOTE] > > 因为,本人安装 MinGW-w64 的目录是 `D:\develop\mingw64`,所以配置 path 环境变量就需要 `D:\develop\mingw64\bin`。 -![](./assets/31.png) +![](./assets/8.png) * 测试是否安装成功: @@ -74,7 +73,7 @@ gcc --version ``` -![](./assets/32.gif) +![](./assets/9.gif) ### 1.1.3 Cygwin 的安装和配置 @@ -86,47 +85,47 @@ gcc --version > > 下载地址在[这里](https://www.cygwin.com/install.html)。 -![](./assets/33.png) +![](./assets/10.png) * 点击安装: -![](./assets/34.png) +![](./assets/11.png) -![](./assets/35.png) +![](./assets/12.png) -![](./assets/36.png) +![](./assets/13.png) -![](./assets/37.png) +![](./assets/14.png) -![](./assets/38.png) +![](./assets/15.png) -![](./assets/39.png) +![](./assets/16.png) -![](./assets/40.png) +![](./assets/17.png) -![](./assets/41.png) +![](./assets/18.png) > [!NOTE] > > 默认是最小化安装,没有 GCC,需要选择 gcc-core、gcc-g++、make、gdb、binutils 。 -![](./assets/42.png) +![](./assets/19.png) -![](./assets/43.png) +![](./assets/20.png) -![](./assets/44.png) +![](./assets/21.png) -![](./assets/45.png) +![](./assets/22.png) -![](./assets/46.png) +![](./assets/23.png) -![](./assets/47.png) +![](./assets/24.png) -![](./assets/48.png) +![](./assets/25.png) -![](./assets/49.png) +![](./assets/26.png) -![](./assets/50.png) +![](./assets/27.png) #### 1.1.3.2 配置 path 环境变量 @@ -142,23 +141,23 @@ gcc --version > > 下载地址在[这里](https://www.msys2.org/)。 -![](./assets/51.png) +![](./assets/28.png) * 点击安装: -![](./assets/52.png) +![](./assets/29.png) -![](./assets/53.png) +![](./assets/30.png) -![](./assets/54.png) +![](./assets/31.png) -![](./assets/55.png) +![](./assets/32.png) -![](./assets/56.png) +![](./assets/33.png) * 出现命令终端: -![](./assets/57.png) +![](./assets/34.png) * 替换清华镜像源(可选): @@ -166,7 +165,7 @@ gcc --version sed -i "s#https\?://mirror.msys2.org/#https://mirrors.tuna.tsinghua.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist* ``` -![](./assets/58.gif) +![](./assets/35.gif) * 安装 gcc 等相关开发包: @@ -182,7 +181,7 @@ pacman -Sy base-devel --noconfirm # 安装开发工具包 pacman -Sy mingw-w64-x86_64-toolchain --noconfirm # 安装开发 gcc 相关工具链 ``` -![](./assets/59.gif) +![](./assets/36.gif) #### 1.1.4.2 配置 path 环境变量 @@ -200,73 +199,73 @@ pacman -Sy mingw-w64-x86_64-toolchain --noconfirm # 安装开发 gcc 相关工 * 鼠标双击,进入安装: -![](./assets/60.png) +![](./assets/37.png) * 下一步: -![](./assets/61.png) +![](./assets/38.png) * 下一步: -![](./assets/62.png) +![](./assets/39.png) * 下一步: -![](./assets/63.png) +![](./assets/40.png) * 安装: -![](./assets/64.png) +![](./assets/41.png) * 安装完成: -![](./assets/65.png) +![](./assets/42.png) #### 1.2.1.3 配置 * 打开 CLion : -![](./assets/66.png) +![](./assets/43.png) * 安装中文插件(可选): -![](./assets/67.png) +![](./assets/44.png) -![](./assets/68.png) +![](./assets/45.png) * 配置新 UI : -![](./assets/69.png) +![](./assets/46.png) -![](./assets/70.png) +![](./assets/47.png) * 新 UI 配置自定义字体(可选): -![](./assets/71.png) +![](./assets/48.png) * 配置`自动保存`功能: -![](./assets/72.png) +![](./assets/49.png) * 配置`文件编码` 为 UTF-8: -![](./assets/73.png) +![](./assets/50.png) * 配置`控制台编码`为 UTF-8: -![](./assets/74.png) +![](./assets/51.png) * 配置`显示方法分隔符`功能: -![](./assets/75.png) +![](./assets/52.png) * 配置`编辑器`的字体(可选): -![](./assets/76.png) +![](./assets/53.png) * 检测 GCC 工具链是否安装成功: -![](./assets/77.png) +![](./assets/54.png) ### 1.2.2 VS Code @@ -282,49 +281,49 @@ pacman -Sy mingw-w64-x86_64-toolchain --noconfirm # 安装开发 gcc 相关工 * 鼠标双击,进入安装: -![](./assets/78.png) +![](./assets/55.png) * 同意协议: -![](./assets/79.png) +![](./assets/56.png) * 下一步: -![](./assets/80.png) +![](./assets/57.png) * 下一步: -![](./assets/81.png) +![](./assets/58.png) * 下一步: -![](./assets/82.png) +![](./assets/59.png) * 安装: -![](./assets/83.png) +![](./assets/60.png) * 安装过程: -![](./assets/84.png) +![](./assets/61.png) * 安装完成: -![](./assets/85.png) +![](./assets/62.png) #### 1.2.2.3 配置 * 安装`中文`插件: -![](./assets/86.png) +![](./assets/63.png) -![](./assets/87.png) +![](./assets/64.png) * 安装 `C/C++` 插件: -![](./assets/88.png) +![](./assets/65.png) -![](./assets/89.png) +![](./assets/66.png) ### 1.2.3 Microsoft Visual Studio @@ -342,69 +341,69 @@ pacman -Sy mingw-w64-x86_64-toolchain --noconfirm # 安装开发 gcc 相关工 * 鼠标双击,进入安装: -![](./assets/90.png) +![](./assets/67.png) * 继续: -![](./assets/91.png) +![](./assets/68.png) * 等待: -![](./assets/92.png) +![](./assets/69.png) * 工作负荷(使用 C++ 的桌面开发): -![](./assets/93.png) +![](./assets/70.png) * 单个组件: -![](./assets/94.png) +![](./assets/71.png) * 语言包: -![](./assets/95.png) +![](./assets/72.png) * 安装位置(修改默认的安装位置): -![](./assets/96.png) +![](./assets/73.png) * 如果不是第一次安装,可能会出现`共享组件、工具和 SDK`不可以修改,即: -![](./assets/97.png) +![](./assets/74.png) * 此时,就需要打开`注册表编辑器`,将如下图中的除了第一个选项,全部删除,然后关闭再重新安装,即: -![](./assets/98.png) +![](./assets/75.png) * 开始安装: -![](./assets/99.png) +![](./assets/76.png) * 安装中: -![](./assets/100.png) +![](./assets/77.png) * 安装完成,然后关闭: -![](./assets/101.png) +![](./assets/78.png) #### 1.2.3.3 配置 * 在开始菜单处,启动 VS : -![](./assets/102.png) +![](./assets/79.png) * 登录或跳过该选项(有微软账号就注册,没有就暂时跳过): -![](./assets/103.png) +![](./assets/80.png) * 继续: -![](./assets/104.png) +![](./assets/81.png) * 注册 VS : -![](./assets/105.png) +![](./assets/82.png) * 填写注册码: @@ -413,19 +412,19 @@ pacman -Sy mingw-w64-x86_64-toolchain --noconfirm # 安装开发 gcc 相关工 > * ① Pro 版本:`TD244-P4NB7-YQ6XK-Y8MMM-YWV2J` > * ② Enterprise 版本:`VHF9H-NXBBB-638P6-6JHCY-88JWH` -![](./assets/106.png) +![](./assets/83.png) -![](./assets/107.png) +![](./assets/84.png) -# 第二章:HelloWorld(⭐) +# 第二章:C 语言入门(HelloWorld,⭐) -### 2.3.1 手动版 +## 2.1 手动版 * ① 新建一个 `HelloWorld.c` 的文件: -![](./assets/108.png) +![](./assets/85.png) * ② 通过`记事本`等软件打开该文件,输入如下的代码,并保存: @@ -438,7 +437,7 @@ int main(){ } ``` -![](./assets/109.gif) +![](./assets/86.gif) * ③ 通过 `gcc` 命令编译该文件: @@ -446,7 +445,7 @@ int main(){ gcc HelloWorld.c -o HelloWorld.exe ``` -![](./assets/110.gif) +![](./assets/87.gif) * ④ 执行: @@ -454,27 +453,27 @@ gcc HelloWorld.c -o HelloWorld.exe ./HelloWorld.exe ``` -![](./assets/111.gif) +![](./assets/88.gif) -### 2.3.2 VS Code 版 +## 2.2 VS Code 版 * ① 新建一个`空`文件夹(目录),用于存放代码: -![](./assets/112.png) +![](./assets/89.png) * ② 通过 `vscode` 打开该目录: -![](./assets/113.gif) +![](./assets/90.gif) * ③ 在 `vscode` 中新建 `HelloWorld.c` 文件: -![](./assets/114.gif) +![](./assets/91.gif) * ④ 设置 VSCode 中 C/C++ 的代码格式为行尾风格(可选): -![](./assets/115.png) +![](./assets/92.png) -![](./assets/116.png) +![](./assets/93.png) * ⑤ 编写如下的代码,并保存: @@ -487,7 +486,7 @@ int main(){ } ``` -![](./assets/117.gif) +![](./assets/94.gif) * ⑥ 通过 `gcc` 命令编译该文件: @@ -495,7 +494,7 @@ int main(){ gcc HelloWorld.c -o HelloWorld.exe ``` -![](./assets/118.gif) +![](./assets/95.gif) * ⑦ 执行: @@ -503,33 +502,33 @@ gcc HelloWorld.c -o HelloWorld.exe ./HelloWorld.exe ``` -![](./assets/119.gif) +![](./assets/96.gif) * ⑧ 安装 Code Runner 插件(步骤略),实现右键直接编译执行(可选): -![](./assets/120.gif) +![](./assets/97.gif) -### 2.3.3 VS 版 +## 2.3 VS 版 * ① 新建空项目: -![](./assets/121.png) +![](./assets/98.png) -![](./assets/122.png) +![](./assets/99.png) -![](./assets/123.png) +![](./assets/100.png) -![](./assets/124.png) +![](./assets/101.png) * ② 打开`解决方案资源管理器`: -![](./assets/125.png) +![](./assets/102.png) -![](./assets/126.png) +![](./assets/103.png) * ③ 新建 `HelloWorld.c` 文件: -![](./assets/127.gif) +![](./assets/104.gif) * ④ 编写如下代码,并保存: @@ -542,21 +541,21 @@ int main(){ } ``` -![](./assets/128.gif) +![](./assets/105.gif) * ⑤ 编译和执行: -![](./assets/129.gif) +![](./assets/106.gif) -### 2.3.4 CLion +## 2.4 CLion 版 * ① 新建空项目: -![](./assets/130.png) +![](./assets/107.png) -![](./assets/131.png) +![](./assets/108.png) -![](./assets/132.png) +![](./assets/109.png) * ② 编写如下代码,并保存: @@ -569,21 +568,21 @@ int main(){ } ``` -![](./assets/133.gif) +![](./assets/110.gif) * ③ 编译和运行: -![](./assets/134.gif) +![](./assets/111.gif) * ④ 默认情况下,一个项目只能有一个 c 源文件包含 main 函数,但是 CLion 可以有多个,如下: -![](./assets/135.gif) +![](./assets/112.gif) * ⑤ 如果之后,有中文乱码问题,那么请做如下步骤: -![](./assets/136.png) +![](./assets/113.png) -![](./assets/137.gif) +![](./assets/114.gif) > [!NOTE] > @@ -596,10 +595,110 @@ int main(){ -# 第三章:注释(⭐) + + +# 第三章:五花八门的 C 语言编译器(⭐) ## 3.1 概述 +* 由于 C 语言的历史比较久,而且早期没有规范,整个计算机产业也都处于拓荒的年代,所以就涌现了很多款 C 语言编译器,它们各有特点,适用于不同的平台。 + +## 3.2 桌面操作系统 + +* 目前而言,主流的桌面操作系统就是 Windows、Linux 和 MacOS 。 +* 对于 Windows 而言,使用的最多的 C/C++ 编译器是 `MSVC` (Microsoft Visual C++),被集成在 Visual Studio 开发环境中,其特点如下: + * ① **兼容性**: 与 Windows 操作系统和 Windows API 深度集成,生成的二进制文件为 PE 格式。 + * ② **调试工具**: 提供强大的调试工具,如:Visual Studio Debugger。 + * ③ **优化**: 支持各种编译器优化,特别是针对 Windows 平台的优化。 + * ④ **库支持**: 提供丰富的 Windows 专用库,如:~~MFC(Microsoft Foundation Class Library)~~。 + +> [!NOTE] +> +> MSVC 不开源,我们可以使用 Visual Studio Community 社区版,但是如果想使用 Visual Studio Community 社区版生成出来的应用进行商用,就需要好好阅读微软的许可证和说明书了。 + +* 对于 Linux 而言,使用的最多的 C/C++ 编译器是 `GCC`(支持多种架构和语言),并且很多 Linux 发行版本都将 GCC 作为默认的编译器,其特点如下所示: + * ① **广泛支持**: 支持各种 Linux 发行版,是大多数开源项目的默认编译器。 + * ② **强大的优化**: 提供各种编译优化选项,适合多种性能需求的开发。 + * ③ **丰富的工具链**: 和 GDB(GNU 调试器)、Make、Autoconf 等工具无缝集成。 + +> [!NOTE] +> +> 目前而言,GCC 已经属于跨平台的项目了,支持 Windows、Linux 和 MacOS ,在 Windows 上 GCC 的移植项目,如:MinGW、Cygwin 以及 MSYS2,其差别如下所示: +> +> * ① MinGW 提供了 GCC 编译器的 Windows 版本,可以生成 Windows 兼容的本地代码。 +> * ② Cygwin 是一个在 Windows 上运行的类 Unix 环境,它提供了一套完整的 POSIX 兼容工具,包括 GCC 编译器。 +> * ③ MSYS2 是一个在 Windows 上运行的轻量级、开源的 Unix-like 环境,它为 Windows 用户提供了类似于 Linux 的开发环境。MSYS2 是 MinGW 和 Cygwin 的后继者,旨在提供更现代化和更强大的开发工具集。 + + + +* 对于 MacOS 而言,使用的最多的 C/C++ 编译器是 `Clang/LLVM`,其特点如下: + * ① **Xcode 集成**: 深度集成到 Xcode 中,支持 Apple 的所有平台(macOS、iOS、tvOS、watchOS)的开发。 + * ② **优化和兼容**: 生成的代码针对 Apple 的硬件进行优化,并兼容 GCC 的大部分功能。 + * ③ **现代化**: Clang 提供了对 C 语言标准的全面支持,并且以其快速的编译速度和易读的错误报告而著称。 + +> [!NOTE] +> +> 在 MacOS 中,尽管 Clang 是默认编译器;但是,也可以 Homebrew 等包管理器来安装 GCC ,以便开发 C/C++ 项目。 + +## 3.3 嵌入式系统 + +* 在嵌入式系统开发中,可用的 C 语言编译器以及工具链非常丰富, 有很多是免费或开源的,如下所示: + + * `GCC (GNU Compiler Collection)`: + * 简介:GCC 是最广泛使用的开源编译器集合之一,支持多种处理器架构,包括 ARM、AVR、MIPS、RISC-V 等。 + * 开源或免费:完全开源且免费,受到广泛的社区支持。 + * `Clang/LLVM`: + * 简介:Clang 是基于 LLVM 架构的开源编译器,支持多种架构,并且与 GCC 兼容。 + * 开源或免费:开源且免费,具有快速的编译速度和现代化的代码分析工具。 + * `SDCC (Small Device C Compiler)`: + * 简介: SDCC 是一个开源的跨平台 C 编译器,主要用于 8 位和 16 位微控制器,如:8051、Z80、PIC 等。 + * 开源或免费:完全开源且免费,适合教育和小型项目开发。 + * `MPLAB XC Compilers`: + * 简介:MPLAB XC 是由 Microchip 提供的编译器系列,专门用于其 PIC 和 dsPIC 微控制器。 + * 开源或免费:提供免费版本(使用标准优化级别),但也有付费版本提供更高级的优化。 + * `ARM GCC`: + * 简介:ARM GCC 是 GCC 的一个专门版本,针对 ARM Cortex-M 系列微控制器进行了优化。 + * 开源或免费:完全开源且免费,广泛用于工业、教育和开源项目中。 + * `PlatformIO` : + * 简介:PlatformIO 是一个开源的嵌入式开发生态系统,支持多种开发板、框架和编译器。 + * 开源或免费:基本功能免费,部分高级功能和插件需要订阅服务。 + * `Eclipse` : + * 简介:Eclipse 是一个开源的集成开发环境(IDE),可以通过插件支持嵌入式开发。 + * 开源或免费:Eclipse 和 GCC 都是开源免费的,适合跨平台开发。 + * `Arduino IDE`: + * 简介:Arduino IDE 是一个简单易用的开源开发环境,广泛用于 Arduino 开发板和其他兼容开发板。 + * 开源或免费:完全开源且免费,非常适合教育和入门级开发。 + * ... +* 这些编译器以及工具链各有优势,开发者应根据目标硬件平台、项目需求和开发环境选择最适合的编译器。 + +## 3.4 C 语言为什么有那么多的编译器? + +* C 语言并没有一个官方机构,也不属于哪个公司,它只有一个制定标准的委员会,任何其他组织或者个人都可以开发 C 语言的编译器,而这个编译器要遵守哪个 C 语言标准,是 100% 遵守还是部分遵守,并没有强制性的措施,也没有任何约束。 + +> [!NOTE] +> +> 各个厂商可以为了自己的利益、根据自己的喜好来开发编译器。 + +* 这就导致了一个棘手的问题,有的编译器遵守较新的 C 语言标准,有的编译器只能遵守较老的 C 语言标准,有的编译器还进行了很多扩展。比如: + * GCC、LLVM/Clang 更新非常及时,能够支持最新的 C 语言标准。 + * MSVC 更新比较缓慢,迟迟不能支持新标准,例如:VC 6.0、VS2010 都在使用 C89 标准,VS2015 部分支持 C99 标准。 + +> [!NOTE] +> +> 微软官方给出的答复:最新的标准已经在 C++ 中支持了,C 语言就没必要再重复了。 + +* 初学者经常会遇到这种情况,有些代码在 MSVC 下能够正常运行,拿到 GCC 下就不行了,一堆报错信息; 或者反过来,在 GCC 上能运行的代码在 MSVC 下不能运行。这是因为不同的编译器支持的标准不同,每个编译器都进行了自己的扩展,假如你使用了 MSVC 自己的扩展函数,那么拿到 GCC 下肯定是不支持的。 + +> [!IMPORTANT] +> +> 在学习的时候,无所谓使用那个 C 语言编译器了;但是,如果要开发实际项目(开源或商业),最好使用 GCC 编译器,因为其功能最强大、开源、跨平台、免费,支持最新的 C 语言标准。 + + + +# 第四章:注释(⭐) + +## 4.1 概述 + * 编程语言中,`注释`是一种`特殊`的文本,它不会被编译器执行,而仅用于代码的解释和文档说明。 >[!NOTE] @@ -607,7 +706,7 @@ int main(){ >* ① 注释是一个程序员必须有具有的良好编程习惯。 >* ② 在实际开发中,程序员可以将自己的思路通过`注释`整理出来,然后再用`代码`去实现。 -## 3.2 单行注释 +## 4.2 单行注释 * C 语言中的单行注释的格式,如下所示: @@ -634,7 +733,7 @@ int main() { // 定义主函数 } ``` -## 3.3 多行注释 +## 4.3 多行注释 * C 语言中的多行注释的格式,如下所示: @@ -672,11 +771,11 @@ int main() { -# 第四章:HelloWorld 的规范(⭐) +# 第五章:HelloWorld 的规范(⭐) -## 4.1 规范的代码风格 +## 5.1 规范的代码风格 -### 4.1.1 正确的缩进和空白 +### 5.1.1 正确的缩进和空白 * ① 使用一次 `tab` 操作,实现缩进,默认整体向右边移动;如果使用 `shift + tab` 则整体向左移动。 * ② 运算符两边习惯各加一个空格,如:`2 + 4 = 6`。 @@ -704,7 +803,7 @@ int main() { } ``` -### 4.1.2 代码风格 +### 5.1.2 代码风格 * 在 C 语言中,有两种代码风格:`行尾风格`和`次行风格`。 @@ -746,9 +845,9 @@ int main() } ``` -## 4.2 代码细节剖析 +## 5.2 代码细节剖析 -### 4.2.1 main() 函数 +### 5.2.1 main() 函数 * 在 C 语言中,一个程序或工程可以定义很多函数,但是有且只有一个 main() 函数,作为程序执行的入口,并且在 main() 函数结尾结束整个程序的运行,即: @@ -766,14 +865,14 @@ int main(){ > * ① 在 C 语言中,人们约定,如果 `return 0`,就表示 main() 函数终止运行,且运行成功;如果返回其它非零整数,则表示运行失败。 > * ② 默认情况下,如果 main() 函数中省略 `return 0` ,则编译器会自动加上;但是,为了保持统一的代码风格,不建议省略。 -### 4.2.2 函数体 +### 5.2.2 函数体 * ① 一对花括号 `{}` 定义了函数的主体,所有函数都必须以大括号开头和结尾,成对出现。 * ② C 程序中的函数体指的是作为该函数一部分的语句。它可以是任何操作,比如:搜索、排序、打印等。 * ③ 每一个执行语句后面都会有一个英文分号`;`作为语句结束的标志。 * ④ 一行内可写几条语句,一条语句也可写在几行上。 -### 4.2.3 printf() 函数 +### 5.2.3 printf() 函数 * printf() 函数的格式,如下所示: @@ -793,9 +892,9 @@ printf ("Hello World"); // 将字符串输出到控制台,行尾不换行 printf("Hello World\n"); ``` -### 4.2.4 标准库和头文件 +### 5.2.4 标准库和头文件 -#### 4.2.4.1 概述 +#### 5.2.4.1 概述 * printf() 函数是在标准库的头文件 `stdio.h` 中定义的,要想在程序中使用这个函数,必须在源文件的头部引入该头文件,即: @@ -803,7 +902,7 @@ printf("Hello World\n"); #include ``` -#### 4.2.4.2 标准库(Standard Library) +#### 5.2.4.2 标准库(Standard Library) * C 语言的`标准库`是由一组函数组成,这些函数提供了许多常用的操作和功能,如:输入输出、字符串处理、内存管理、数学计算等。标准库中的函数由编译器提供,遵循 ANSI C 标准(如:C89/C90、C99、C11等)。 * 换言之,C 语言的`标准库`就是包含函数的实际代码,这些代码在编译的时候被链接到我们的程序中,无需手动包含。C 语言的`标准库`提供了可重用的函数实现,使得程序员不必编写常用的功能。 @@ -812,7 +911,7 @@ printf("Hello World\n"); > > 实际的 printf() 函数的实现代码通常位于标准库的实现文件中,如:在 Linux 中的标准库`libc.so.6` 就包含了 printf() 函数的实现。 -#### 4.2.4.3 头文件(Header Files) +#### 5.2.4.3 头文件(Header Files) * `头文件`是包含函数声明、宏定义、数据类型定义等内容的文件。头文件的作用是为源代码提供必要的声明和定义,以便编译器能够正确解析和链接函数调用。头文件通常以`.h`作为文件扩展名。 * 换言之,头文件包含函数声明、宏定义和数据类型定义,但不包含函数的实现。头文件告知编译器如何使用标准库中的函数和定义,确保编译时的正确性。头文件需要在源代码文件中使用`#include`指令显式包含,如:`#include `。 @@ -830,7 +929,7 @@ printf("Hello World\n"); | **stdbool.h** | 布尔类型库 | `bool`, `true`, `false` | | **assert.h** | 断言库 | `assert` | -#### 4.2.4.4 预处理命令 +#### 5.2.4.4 预处理命令 * `#include` 命令的作用是将指定文件的内容插入到包含该命令的源文件中。这通常用于包含头文件,以便使用头文件中声明的函数、宏和数据类型。 * 语法: @@ -849,16 +948,16 @@ printf("Hello World\n"); -# 第五章:CLion 高级配置(⭐) +# 第六章:CLion 高级配置(⭐) -## 5.1 安装和配置 WSL2 +## 6.1 安装和配置 WSL2 -### 5.1.1 概述 +### 6.1.1 概述 * WSL 2,全称为 Windows Subsystem for Linux 2,是微软提供的一种技术,允许用户在 Windows 操作系统上运行 Linux 内核。WSL 2 是 WSL 的升级版,它引入了一个真正的 Linux 内核来代替 WSL 1 中使用的兼容层,从而提供更高的性能和更广泛的系统调用支持。 * 其架构图,如下所示: -![](./assets/138.png) +![](./assets/115.png) * WSL2 的功能,如下所示: * ① **真实的Linux内核**:WSL 2 使用了微软开发的轻量级虚拟机,它包含了一个完整的 Linux 内核。这意味着 WSL 2 能够运行更多的 Linux 应用程序,并且支持更多的系统调用。 @@ -873,15 +972,15 @@ printf("Hello World\n"); * ③ **多平台开发**:对于跨平台开发者来说,WSL 2 允许他们在一个操作系统上同时进行 Windows 和 Linux 平台的开发和测试,提高工作效率。 * ④ **运行 Linux 工具和应用程序**:WSL 2 支持在 Windows 上直接运行各种 Linux 工具和应用程序,如:Docker、数据库、编程语言环境等。 -### 5.1.2 WSL2 的安装 +### 6.1.2 WSL2 的安装 * ① BIOS 或 UEFI 中,开启虚拟化:步骤略。 -![](./assets/139.png) +![](./assets/116.png) * ② 查看是否开启了虚拟化: -![](./assets/140.png) +![](./assets/117.png) * ③ 启用适用于 Linux 的 Windows 子系统: @@ -895,7 +994,7 @@ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux -![](./assets/141.gif) +![](./assets/118.gif) * ④ 启用虚拟机功能: @@ -907,7 +1006,7 @@ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /nores > > 以管理员身份打开 PowerShell 并运行,执行完上述命令之后,如果提示需要重启计算机,那就重启计算机。 -![](./assets/142.gif) +![](./assets/119.gif) * ⑤ 更新 Linux 内核包: @@ -919,7 +1018,7 @@ wsl --update > > wsl2 的最新 Linux 内核包托管在 GitHub 上,某些国家可能会污染 Github 相关的域名,那么就需要手动下载,然后安装即可,下载地址在[这里](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi)。 -![](./assets/143.gif) +![](./assets/120.gif) * ⑥ 将 wsl2 设置为默认版本: @@ -927,7 +1026,7 @@ wsl --update wsl --set-default-version 2 ``` -![](./assets/144.gif) +![](./assets/121.gif) * ⑦ 查看官方在线支持的 Linux 版本: @@ -935,7 +1034,7 @@ wsl --set-default-version 2 wsl --list --online ``` -![](./assets/145.gif) +![](./assets/122.gif) * ⑧ 安装指定版本的 Linux : @@ -947,11 +1046,11 @@ wsl --install Ubuntu-24.04 > > 官方支持的 Linux 版本,托管在 Github 上,某些国家可能会污染 Github 的域名;此时,要么走科学上网,要么在 `Microsoft Store` 中搜索并安装。 -![](./assets/146.gif) +![](./assets/123.gif) * ⑨ 在 Microsoft Store 中搜索并安装(可选): -![](./assets/147.png) +![](./assets/124.png) * ⑩ 查询本地安装的 Linux 版本: @@ -959,9 +1058,9 @@ wsl --install Ubuntu-24.04 wsl --list ``` -![](./assets/148.gif) +![](./assets/125.gif) -### 5.1.3 配置 WSL2 +### 6.1.3 配置 WSL2 * 本人的安装的是 AlmaLinux9 ,所以需要执行如下命令,以便安装 cmake 相关工具链: @@ -974,13 +1073,13 @@ sudo dnf install make -y # 安装 make sudo dnf install gdb -y # 安装 gdb ``` -![](./assets/149.gif) +![](./assets/126.gif) * 可以通过 CLion 测试是否安装成功: -![](./assets/150.gif) +![](./assets/127.gif) -### 5.1.4 配置 WSL2 +### 6.1.4 配置 WSL2 * 本人的安装的是 Ubuntu 24.04,所以需要执行如下命令,以便安装 cmake 相关工具链: @@ -992,7 +1091,7 @@ sudo apt install cmake -y # 安装 cmake sudo apt install gdb -y # 安装 gdb ``` -![](./assets/151.gif) +![](./assets/128.gif) * 可以通过 CLion 测试是否安装成功: @@ -1000,19 +1099,19 @@ sudo apt install gdb -y # 安装 gdb > > 默认仓库中的 GDB 的版本会很高,CLion 会不支持,那么就需要手动下载源码,自行编译,本次不再演示!!! -![](./assets/152.gif) +![](./assets/129.gif) -## 5.2 切换 CLion 中的 cmake 的工具链 +## 6.2 切换 CLion 中的 cmake 的工具链 * 可以在 CLoin 中切换 cmake 的工具链,以便支持不同平台的 cmake ,即: -![](./assets/153.gif) +![](./assets/130.gif) -## 5.3 修改 CMakeLists.txt 文件 +## 6.3 修改 CMakeLists.txt 文件 * 前文也提到了,在一个 C 语言项目中,只能有一个 main() 函数;但是,我们可以修改 `CMakeLists.txt` 文件的内容,以便其支持在一个 C 语言项目中,可以有多个包含 main() 函数的文件,如下所示: -![](./assets/154.png) +![](./assets/131.png) * `CMakeLists.txt` 的内容,如下所示: @@ -1083,11 +1182,11 @@ foreach (SOURCE ${SOURCES}) endforeach () ``` -## 5.4 配置 .clang-format 文件 +## 6.4 配置 .clang-format 文件 * 配置 `.clang-format` 格式化文件,以便写代码的时候,可以自动保存并格式化 C 程序代码,如下所示: -![](./assets/155.png) +![](./assets/132.png) * `.clang-format` 的内容,如下所示: @@ -1129,13 +1228,13 @@ SpacesInCStyleCastParentheses: false * CLion 中配置`保存`的时候`自动格式化`,即: -![](./assets/156.gif) +![](./assets/133.gif) -## 5.5 配置 .gitignore 文件 +## 6.5 配置 .gitignore 文件 * 需要在项目中,配置 `.gitignore` 文件,以便在提交代码到 Git 仓库的时候,忽略某些文件或目录,如下所示: -![](./assets/157.png) +![](./assets/134.png) * `.gitignore` 文件的内容,如下所示: @@ -1146,7 +1245,7 @@ cmake-build-* build ``` -## 5.6 演示 +## 6.6 演示 * 我们可以在项目中,临时创建或复制一个文件,看上述配置是否生效,即: @@ -1154,17 +1253,17 @@ build > > 如果是复制并粘贴一个文件到项目中,请点击`重新加载 CMake 项目`!!! -![](./assets/158.gif) +![](./assets/135.gif) -# 第六章:C 语言的编译过程(⭐) +# 第七章:C 语言的编译过程(⭐) -## 6.1 概述 +## 7.1 概述 * C 程序的编译过程,如下所示: -![](./assets/159.png) +![](./assets/136.png) * 过程 ① :编写(编辑)源代码,即:编写 C 语言源程序代码,并以文件的形式存储在磁盘中。 @@ -1205,14 +1304,14 @@ build > > 如果`修改`了源代码,还需要重新`编译`、`链接`,并生成新的 `*.exe`文件,再执行,方能生效。 -## 6.2 GCC 编译器的介绍 +## 7.2 GCC 编译器的介绍 * 编辑器,如:vim 、vscode 等,是指我们用它来编写源程序的(编辑代码),而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的转化工具。换言之,我们用编辑器编写程序,由编译器编译后才可以运行! * 编译器是将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。 * gcc(GNU Compiler Collection,GNU 编译器套件),是由 GNU 开发的编程语言编译器。gcc 原本作为 GNU 操作系统的官方编译器,现已被大多数类 Unix 操作系统(如:Linux、BSD、Mac OS X 等)采纳为标准的编译器,gcc 同样适用于微软的 Windows 。 * gcc 最初用于编译 C 语言,随着项目的发展, gcc 已经成为了能够编译 C、C++、Java、Ada、fortran、Object C、Object C++、Go 语言的编译器大家族。 -## 6.3 通过 gcc 直接生成可执行文件 +## 7.3 通过 gcc 直接生成可执行文件 * 示例:进行预处理、编译、汇编和链接 @@ -1220,11 +1319,11 @@ build gcc HelloWorld.c -o HelloWorld.exe ``` -![](./assets/160.gif) +![](./assets/137.gif) -## 6.4 通过 gcc 分步编译 +## 7.4 通过 gcc 分步编译 -### 6.3.1 概述 +### 7.3.1 概述 * 预处理命令: @@ -1250,7 +1349,7 @@ gcc -c 源文件.s -o 源文件.o # 在 Linux 中,通常以 .o 结尾;在 Wi gcc 源文件.o -o 源文件.exe # 在 Linux 中,通常以 .out 结尾;在 Windows 中,通常以 .exe 结尾 ``` -### 6.4.2 应用示例 +### 7.4.2 应用示例 * 示例:只进行预处理 @@ -1258,7 +1357,7 @@ gcc 源文件.o -o 源文件.exe # 在 Linux 中,通常以 .out 结尾;在 W gcc -E HelloWorld.c -o HelloWorld.i ``` -![](./assets/161.gif) +![](./assets/138.gif) @@ -1268,7 +1367,7 @@ gcc -E HelloWorld.c -o HelloWorld.i gcc -S HelloWorld.i -o HelloWorld.s ``` -![](./assets/162.gif) +![](./assets/139.gif) @@ -1278,7 +1377,7 @@ gcc -S HelloWorld.i -o HelloWorld.s gcc -c HelloWorld.s -o HelloWorld.o ``` -![](./assets/163.gif) +![](./assets/140.gif) @@ -1288,15 +1387,15 @@ gcc -c HelloWorld.s -o HelloWorld.o gcc HelloWorld.o -o HelloWorld.exe ``` -![](./assets/164.gif) +![](./assets/141.gif) -# 第七章:附录 +# 第八章:附录 -## 7.1 WSL2 代理问题 +## 8.1 WSL2 代理问题 * 在安装和配置 WSL2 之后,可能会出现如下的提示,即: -![](./assets/166.png) +![](./assets/142.png) * 那么,只需要修改 `%USERPROFILE%\.wslconfig`文件,内容如下: @@ -1313,7 +1412,7 @@ bestEffortDnsParsing=true useWindowsDnsCache=true ``` -![](./assets/167.png) +![](./assets/143.png) * 在命令行中,执行如下的命令: @@ -1321,21 +1420,21 @@ useWindowsDnsCache=true wsl --shutdown ``` -![](./assets/168.gif) +![](./assets/144.gif) * 此时,再打开终端,就没有这种提示了: -![](./assets/169.png) +![](./assets/145.png) -## 7.2 CLion 调试问题 +## 8.2 CLion 调试问题 * 在 CLion 中进行 run(运行)程序的时候,对于 `printf` 函数或 `scanf` 函数很正常,如下所示: -![](./assets/170.gif) +![](./assets/146.gif) * 但是,当我们 debug(调试) 的时候,对于 `printf` 函数或 `scanf` 函数会一直没有输出,如下所示: -![](./assets/171.gif) +![](./assets/147.gif) * 原因是 `scanf` 函数并不是直接让用户从键盘输入数据,而是先检查缓冲区,处理缓冲区中的数据;当遇到 `scanf` 函数时,程序会先检查输入缓冲区中是否有数据,所以解决方案就是`禁用缓冲区`,如下所示: @@ -1360,11 +1459,11 @@ int main() { * 那么,就会达到我们想要的效果了,如下所示: -![](./assets/172.gif) +![](./assets/148.gif) -## 7.3 内存泄露检测 +## 8.3 内存泄露检测 -### 7.3.1 概述 +### 8.3.1 概述 * C 语言中的指针是否使用是个颇具争议的话题,现代化的高级编程语言通过各种策略和机制,在编译期就能解决指针危险的问题。但是,遗憾的是,C 语言的指针很大程度上,在运行期才会暴露问题。 * 幸运的是,我们可以使用 `Valgrind` 项目来进行`内存泄露检测`和`性能分析`,而 `Valgrind` 只支持 Linux 。 @@ -1373,7 +1472,7 @@ int main() { > >win 11 中的 WSL2 就是个 Linux 环境,我们可以在上面跑各种 Linux 工具,这样我们就不需要再安装虚拟机软件了,如:VMware Workstation(它会完整的模拟一个硬件系统,并在上面跑各种 Linux ,实在是太笨重了)。 -### 7.3.2 安装 +### 8.3.2 安装 * 在 WSL2 上安装 Valgrind : @@ -1385,7 +1484,7 @@ dnf -y upgrade && dnf -y install valgrind # AlmaLinux apt -y update && apt -y upgrade && apt -y install valgrind # Ubuntu ``` -![](./assets/173.gif) +![](./assets/149.gif) * 查看 valgrind 可执行文件的安装位置: @@ -1393,17 +1492,17 @@ apt -y update && apt -y upgrade && apt -y install valgrind # Ubuntu which valgrind ``` -![](./assets/174.gif) +![](./assets/150.gif) -### 7.3.3 整合 +### 8.3.3 整合 * CLion 中将工具链设置为 WSL2 : -![](./assets/175.gif) +![](./assets/151.gif) * CLion 中配置 valgrind 的路径: -![](./assets/176.png) +![](./assets/152.png) * 查看 WSL2 中 cmake 的版本: @@ -1411,7 +1510,7 @@ which valgrind cmake --version ``` -![](./assets/177.png) +![](./assets/153.png) * 修改项目中 CMakeLists.txt 中 cmake 的版本: @@ -1484,21 +1583,21 @@ endforeach () * 在 CLion 中正常运行代码: -![](./assets/178.gif) +![](./assets/154.gif) * 在 CLion 中通过 valgrind 运行代码: -![](./assets/179.gif) +![](./assets/155.gif) -## 7.4 性能分析 +## 8.4 性能分析 -### 7.4.1 概述 +### 8.4.1 概述 * `perf` 是一个 Linux 下的性能分析工具,主要用于监控和分析系统性能。它可以帮助开发者和系统管理员了解系统中哪些部分在消耗资源、识别性能瓶颈以及分析程序的运行效率。 -### 7.4.2 安装 +### 8.4.2 安装 -#### 7.4.2.1 AlmaLinux9 +#### 8.4.2.1 AlmaLinux9 * 在 WSL2 中的 AlmaLinux 安装 perf : @@ -1506,9 +1605,9 @@ endforeach () dnf -y install perf ``` -![](./assets/180.gif) +![](./assets/156.gif) -#### 7.4.2.2 Ubuntu 22.04 +#### 8.4.2.2 Ubuntu 22.04 * 在 WSL2 中的 Ubuntu 安装 perf : @@ -1517,7 +1616,7 @@ apt -y update \ && apt -y install linux-tools-common linux-tools-generic linux-tools-$(uname -r) ``` -![](./assets/181.gif) +![](./assets/157.gif) > [!NOTE] > @@ -1529,7 +1628,7 @@ apt -y update \ uname -sr ``` -![](./assets/182.gif) +![](./assets/158.gif) * 设置环境变量,方便后续引用: @@ -1537,7 +1636,7 @@ uname -sr export KERNEL_VERSION=$(uname -r | cut -d'-' -f1) ``` -![](./assets/183.gif) +![](./assets/159.gif) * 安装依赖库: @@ -1551,7 +1650,7 @@ apt -y update && \ libelf++0 libbfb0-dev python-dev-is-python3 ``` -![](./assets/184.gif) +![](./assets/160.gif) * 下载源码: @@ -1562,7 +1661,7 @@ git clone \ https://github.com/microsoft/WSL2-Linux-Kernel.git ``` -![](./assets/185.gif) +![](./assets/161.gif) * 编译内核代码: @@ -1574,7 +1673,7 @@ cd WSL2-Linux-Kernel make -j $(nproc) KCONFIG_CONFIG=Microsoft/config-wsl ``` -![](./assets/186.gif) +![](./assets/162.gif) * 编译 perf 工具: @@ -1586,7 +1685,7 @@ cd tools/perf make clean && make ``` -![](./assets/187.gif) +![](./assets/163.gif) * 复制到 PATH 变量所指向的路径中: @@ -1594,19 +1693,19 @@ make clean && make cp perf /usr/bin/ ``` -![](./assets/188.gif) +![](./assets/164.gif) -### 7.4.3 整合 +### 8.4.3 整合 * CLion 中配置 perf 的路径: -![](./assets/189.png) +![](./assets/165.png) * 在 CLion 中通过 perf 运行代码: -![](./assets/190.gif) +![](./assets/166.gif) -## 7.5 Win 中文乱码问题 +## 8.5 Win 中文乱码问题 * 前文,我们提及到,在 Win 中,如果出现`中文乱码`问题,就需要去`语言和区别`设置`系统区域`的编码为 UTF-8 ;但是,这样可能会造成其它的软件出现中文乱码问题,如:Xshell 等。 @@ -1617,17 +1716,17 @@ cp perf /usr/bin/ * 其实,还有一种解决方案,如下所示: -![](./assets/191.png) +![](./assets/167.png) -![](./assets/192.png) +![](./assets/168.png) -![](./assets/193.png) +![](./assets/169.png) * 测试一下,是否配置成功: -![](./assets/194.gif) +![](./assets/170.gif) -## 7.6 CLion 中自动导入头文件 +## 8.6 CLion 中自动导入头文件 * 在 CLion 中,最为强大的功能就是直接输入函数,然后让 IDE 帮我们自动导入头文件,包括自定义的头文件,相当实用。 @@ -1636,11 +1735,11 @@ cp perf /usr/bin/ > * ① CLion 中的`自动导入头文件`的`快捷键`是 `Alt + Enter` 。 > * ② CLion 中的`自动提取变量的类型`的`快捷键`是 `Ctrl + Alt + V` 。 -![](./assets/195.gif) +![](./assets/171.gif) * 开启自动导入头文件的步骤,如下所示: -![](./assets/196.png) +![](./assets/172.png) -![](./assets/197.png) +![](./assets/173.png)