mirror of
https://github.com/Aexiar/c.git
synced 2024-10-22 14:05:45 +02:00
c
This commit is contained in:
parent
9bdc946fc6
commit
ceff9b59b0
@ -468,7 +468,7 @@ int main() { // 定义主函数
|
|||||||
|
|
||||||
# 第四章:C 语言的学习技巧
|
# 第四章:C 语言的学习技巧
|
||||||
|
|
||||||
## 4.1 概述
|
## 4.1 如何学习 C 语言?
|
||||||
|
|
||||||
* 对于大部分的初学者, 学习 C 语言的目的可能是为了成为一名合格的程序员,开发出优秀的软件。但是,在学习了 C 语言的基本语法后,却发现只能在`控制台`(`黑底白字`)上玩玩,没有漂亮的用户界面以及人性化的交互。于是,开始学习数据结构、算法、数据库、操作系统,越陷越深,越来越迷茫,不知道学习 C 语言能做什么,认为学习编程很难,开始怀疑自己,直到放弃!!!
|
* 对于大部分的初学者, 学习 C 语言的目的可能是为了成为一名合格的程序员,开发出优秀的软件。但是,在学习了 C 语言的基本语法后,却发现只能在`控制台`(`黑底白字`)上玩玩,没有漂亮的用户界面以及人性化的交互。于是,开始学习数据结构、算法、数据库、操作系统,越陷越深,越来越迷茫,不知道学习 C 语言能做什么,认为学习编程很难,开始怀疑自己,直到放弃!!!
|
||||||
* 其实,C 语言本身就是一门非常简单的语言,提供的实用功能不多,大部分的时候需要`借助`操作系统、第三方库以及以及一些硬件才能发挥它的威力!!!
|
* 其实,C 语言本身就是一门非常简单的语言,提供的实用功能不多,大部分的时候需要`借助`操作系统、第三方库以及以及一些硬件才能发挥它的威力!!!
|
||||||
@ -484,7 +484,7 @@ int main() { // 定义主函数
|
|||||||
* 单片机和嵌入式属于软硬件的结合,是使用 C 语言最多的地方。
|
* 单片机和嵌入式属于软硬件的结合,是使用 C 语言最多的地方。
|
||||||
* 开发系统组件或服务,用于支撑上层应用。
|
* 开发系统组件或服务,用于支撑上层应用。
|
||||||
* ……
|
* ……
|
||||||
* 既然 C 语言的应用很多,为什么感觉学习它还是做不了什么?答案就是`生态`。
|
* 貌似感觉 C 语言的应用还是很多的啊,那为什么感觉学习 C 语言还是做不了什么?原因除了 C 语言通常都是开发最`底层`的应用之外,最重要的一点就是`生态`。
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
>
|
>
|
||||||
@ -493,13 +493,13 @@ int main() { // 定义主函数
|
|||||||
> * ① 很多编程语言都自带`标准库`(语言本身提供的,开箱即用),如:Java、Go 等。
|
> * ① 很多编程语言都自带`标准库`(语言本身提供的,开箱即用),如:Java、Go 等。
|
||||||
> * ② 很多编程语言都有自己的`包管理器`(用于管理第三方库)解决方案,如:Java 中的 Maven、Gradle、Go 中的 go modules ,JavaScript 的 npm 等。
|
> * ② 很多编程语言都有自己的`包管理器`(用于管理第三方库)解决方案,如: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 等。
|
> 不过,现在 C 语言社区也开始诞生了一些包管理器,如:Conan 和 vcpkg ;也有自己的项目构建工具,如:cmake 、xmake 等。
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
>
|
>
|
||||||
> JavaScript 的作者 Brendan Eich(布兰登·艾奇) 曾经这么说:“与其说我爱 JavaScript,不如说我恨它。它是 C 语言和 Self 语言一夜情的产物(致敬 C 语言)。十八世纪英国文学家约翰逊博士说得好:"它的优秀之处并非原创,它的原创之处并不优秀。"”
|
> JavaScript 的作者 Brendan Eich(布兰登·艾奇) 曾经这么说:“与其说我爱 JavaScript,不如说我恨它。它是 C 语言和 Self 语言一夜情的产物(`致敬 C 语言`)。十八世纪英国文学家约翰逊博士说得好:"它的优秀之处并非原创,它的原创之处并不优秀。"”
|
||||||
>
|
>
|
||||||
|
|
||||||
## 4.2 项目构建工具和包管理器
|
## 4.2 项目构建工具和包管理器
|
||||||
@ -522,8 +522,8 @@ int main() { // 定义主函数
|
|||||||
* Maven(Java):一个流行的构建工具和依赖管理工具,广泛用于 Java 项目。
|
* Maven(Java):一个流行的构建工具和依赖管理工具,广泛用于 Java 项目。
|
||||||
* Gradle(Java、Kotlin、Groovy):一个灵活的构建工具,支持声明式的构建脚本和多种语言。
|
* Gradle(Java、Kotlin、Groovy):一个灵活的构建工具,支持声明式的构建脚本和多种语言。
|
||||||
* Make(C/C++):一个经典的构建工具,使用 `Makefile` 来定义构建规则和依赖关系。
|
* Make(C/C++):一个经典的构建工具,使用 `Makefile` 来定义构建规则和依赖关系。
|
||||||
* ~~Ant(Java):早期流行的 Java 构建工具,通过 XML 配置文件定义构建过程。~~
|
|
||||||
* CMake(C/C++):一个跨平台的构建系统,帮助生成标准的构建文件,如:Makefile 或 Visual Studio 项目文件。
|
* CMake(C/C++):一个跨平台的构建系统,帮助生成标准的构建文件,如:Makefile 或 Visual Studio 项目文件。
|
||||||
|
* ……
|
||||||
|
|
||||||
### 4.2.3 包管理器
|
### 4.2.3 包管理器
|
||||||
|
|
||||||
@ -537,12 +537,10 @@ int main() { // 定义主函数
|
|||||||
* 常见的包管理器:
|
* 常见的包管理器:
|
||||||
* npm(Node.js):用于管理 JavaScript 和 Node.js 项目的包和模块。
|
* npm(Node.js):用于管理 JavaScript 和 Node.js 项目的包和模块。
|
||||||
* pip(Python):用于安装和管理 Python 的软件包。
|
* pip(Python):用于安装和管理 Python 的软件包。
|
||||||
* Composer(PHP):用于管理 PHP 项目的依赖库。
|
|
||||||
* NuGet(.NET):用于管理 .NET 平台上的包和库。
|
|
||||||
* RubyGems(Ruby):用于管理 Ruby 的库和工具包。
|
|
||||||
* Cargo(Rust):Rust 编程语言的包管理器和构建工具。
|
* Cargo(Rust):Rust 编程语言的包管理器和构建工具。
|
||||||
* Yarn(JavaScript):是 npm 的替代品,提供更快和更可靠的包管理体验。
|
* Yarn(JavaScript):是 npm 的替代品,提供更快和更可靠的包管理体验。
|
||||||
* Homebrew(macOS):用于 macOS 系统下的命令行工具和库的管理。
|
* Homebrew(macOS):用于 macOS 系统下的命令行工具和库的管理。
|
||||||
|
* ……
|
||||||
|
|
||||||
### 4.2.3 注意事项
|
### 4.2.3 注意事项
|
||||||
|
|
||||||
@ -551,7 +549,7 @@ int main() { // 定义主函数
|
|||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
>
|
>
|
||||||
> * ① Gradle 也支持原生项目的开发,如:C 和 C++ 。
|
> * ① Gradle 也支持原生项目的开发,如:C 和 C++ 。
|
||||||
> * ② 不过,业界开发 C/C++ 项目的项目构建工具和包管理器,通常使用 Cmake 和 Conan 。
|
> * ② 不过,目前而言,业界开发 C/C++ 项目时,使用最多的项目构建工具和包管理器是 Cmake 和 Conan 。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user