From ceff9b59b0efd8610cc09cff445d3b56d46f18ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=A4=A7=E4=BB=99?= <1900919313@qq.com> Date: Mon, 12 Aug 2024 08:35:48 +0800 Subject: [PATCH] c --- docs/notes/01_c-basic/00_xdx/index.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/docs/notes/01_c-basic/00_xdx/index.md b/docs/notes/01_c-basic/00_xdx/index.md index 1a223b0..8d6ec10 100644 --- a/docs/notes/01_c-basic/00_xdx/index.md +++ b/docs/notes/01_c-basic/00_xdx/index.md @@ -468,7 +468,7 @@ int main() { // 定义主函数 # 第四章:C 语言的学习技巧 -## 4.1 概述 +## 4.1 如何学习 C 语言? * 对于大部分的初学者, 学习 C 语言的目的可能是为了成为一名合格的程序员,开发出优秀的软件。但是,在学习了 C 语言的基本语法后,却发现只能在`控制台`(`黑底白字`)上玩玩,没有漂亮的用户界面以及人性化的交互。于是,开始学习数据结构、算法、数据库、操作系统,越陷越深,越来越迷茫,不知道学习 C 语言能做什么,认为学习编程很难,开始怀疑自己,直到放弃!!! * 其实,C 语言本身就是一门非常简单的语言,提供的实用功能不多,大部分的时候需要`借助`操作系统、第三方库以及以及一些硬件才能发挥它的威力!!! @@ -484,7 +484,7 @@ int main() { // 定义主函数 * 单片机和嵌入式属于软硬件的结合,是使用 C 语言最多的地方。 * 开发系统组件或服务,用于支撑上层应用。 * …… -* 既然 C 语言的应用很多,为什么感觉学习它还是做不了什么?答案就是`生态`。 +* 貌似感觉 C 语言的应用还是很多的啊,那为什么感觉学习 C 语言还是做不了什么?原因除了 C 语言通常都是开发最`底层`的应用之外,最重要的一点就是`生态`。 > [!IMPORTANT] > @@ -493,13 +493,13 @@ int main() { // 定义主函数 > * ① 很多编程语言都自带`标准库`(语言本身提供的,开箱即用),如:Java、Go 等。 > * ② 很多编程语言都有自己的`包管理器`(用于管理第三方库)解决方案,如:Java 中的 Maven、Gradle、Go 中的 go modules ,JavaScript 的 npm 等。 > -> 遗憾的是,C 语言的`标准库`非常简单,只有`输入输出`、`文件操作`、`日期时间`、`字符串处理`、`内存管理`,对于`网络编程`、`GUI`、`数据库`、`并发`等`需要`大量的`第三方库`来扩展 C 语言的功能(Java 语言、Go 语言等其他的现代化高级编程语言,都是直接将这些常见的开发场景内置到标准库中,极大的降低了软件开发的难度)。C 语言的`第三方库`非常稀少,更别提缺少自己的包管理器。 +> 遗憾的是,C 语言的`标准库`非常简单,只有`输入输出`、`文件操作`、`日期时间`、`字符串处理`、`内存管理`,对于`网络编程`、`GUI`、`数据库`、`并发`等`需要`大量的`第三方库`或`操作系统的功能`来扩展 C 语言的功能(Java 语言、Go 语言等其他的现代化高级编程语言,都是直接将这些常见的开发场景内置到标准库中,开箱即用,极大的降低了软件开发的难度)。C 语言的`第三方库`也不是很多(和其它现代化高级编程语言相比),社区也不是很活跃(和其它现代化高级编程语言相比),更别提缺少自己的包管理器。 > > 不过,现在 C 语言社区也开始诞生了一些包管理器,如:Conan 和 vcpkg ;也有自己的项目构建工具,如:cmake 、xmake 等。 > [!NOTE] > -> JavaScript 的作者 Brendan Eich(布兰登·艾奇) 曾经这么说:“与其说我爱 JavaScript,不如说我恨它。它是 C 语言和 Self 语言一夜情的产物(致敬 C 语言)。十八世纪英国文学家约翰逊博士说得好:"它的优秀之处并非原创,它的原创之处并不优秀。"” +> JavaScript 的作者 Brendan Eich(布兰登·艾奇) 曾经这么说:“与其说我爱 JavaScript,不如说我恨它。它是 C 语言和 Self 语言一夜情的产物(`致敬 C 语言`)。十八世纪英国文学家约翰逊博士说得好:"它的优秀之处并非原创,它的原创之处并不优秀。"” > ## 4.2 项目构建工具和包管理器 @@ -522,8 +522,8 @@ int main() { // 定义主函数 * Maven(Java):一个流行的构建工具和依赖管理工具,广泛用于 Java 项目。 * Gradle(Java、Kotlin、Groovy):一个灵活的构建工具,支持声明式的构建脚本和多种语言。 * Make(C/C++):一个经典的构建工具,使用 `Makefile` 来定义构建规则和依赖关系。 - * ~~Ant(Java):早期流行的 Java 构建工具,通过 XML 配置文件定义构建过程。~~ * CMake(C/C++):一个跨平台的构建系统,帮助生成标准的构建文件,如:Makefile 或 Visual Studio 项目文件。 + * …… ### 4.2.3 包管理器 @@ -537,12 +537,10 @@ int main() { // 定义主函数 * 常见的包管理器: * npm(Node.js):用于管理 JavaScript 和 Node.js 项目的包和模块。 * pip(Python):用于安装和管理 Python 的软件包。 - * Composer(PHP):用于管理 PHP 项目的依赖库。 - * NuGet(.NET):用于管理 .NET 平台上的包和库。 - * RubyGems(Ruby):用于管理 Ruby 的库和工具包。 * Cargo(Rust):Rust 编程语言的包管理器和构建工具。 * Yarn(JavaScript):是 npm 的替代品,提供更快和更可靠的包管理体验。 * Homebrew(macOS):用于 macOS 系统下的命令行工具和库的管理。 + * …… ### 4.2.3 注意事项 @@ -551,7 +549,7 @@ int main() { // 定义主函数 > [!NOTE] > > * ① Gradle 也支持原生项目的开发,如:C 和 C++ 。 -> * ② 不过,业界开发 C/C++ 项目的项目构建工具和包管理器,通常使用 Cmake 和 Conan 。 +> * ② 不过,目前而言,业界开发 C/C++ 项目时,使用最多的项目构建工具和包管理器是 Cmake 和 Conan 。