diff --git a/docs/notes/01_c-basic/01_xdx/index.md b/docs/notes/01_c-basic/01_xdx/index.md index 197f091..194ae59 100644 --- a/docs/notes/01_c-basic/01_xdx/index.md +++ b/docs/notes/01_c-basic/01_xdx/index.md @@ -211,21 +211,20 @@ pacman -Sy mingw-w64-ucrt-x86_64-toolchain --noconfirm # 安装开发 gcc 相关 ## 1.3 什么是 IDE(集成开发环境)? -* 在实际开发中,除了`编译器`是必须安装的工具之外,我们往往还需要其他的辅助软件,如下所示: +* 在实际开发中,除了`编译器`是必须安装的工具之外,我们往往还需要很多其他的辅助软件,如下所示: * 编辑器:用来编写代码,并且给代码着色,以方便阅读。 * 代码提示器:输入部分代码,即可提示全部代码,加速代码的编写过程。 * 调试器:观察程序的每一个运行步骤,发现程序的逻辑错误。 * 项目管理工具:对程序涉及到的所有资源进行管理,包括:源文件、图片、视频、第三方库等。 * 漂亮的界面:各种按钮、面板、菜单、窗口等控件整齐排布,操作更方便。 -* 这些工具通常被打包在一起,统一安装和发布,如:Visual Studio、CLion 以及 VS Code ,通常为集成开发环境(IDE,Integrated Development Environment)。 +* 这些工具通常被打包在一起,统一安装和发布,如:Visual Studio、CLion 以及 VS Code ,通常统称为集成开发环境(IDE,Integrated Development Environment)。 > [!NOTE] > -> * ① IDE(集成开发环境)就是一系列开发工具的组合套装。 -> * ② IDE 开箱即用,即安装完毕之后,稍微配置一下就可以使用,不需要手动编译一个个的源文件,只需要点几下界面上的按钮就可以了。 -> * ③ 严格来讲, VS Code 属于编辑器,而不是 IDE;但是,可以通过安装插件,来完成 IDE 的功能;而 Visual Studio 和 CLion 属于 IDE。 -> * ④ 在实际开发中,使用 IDE 进行编程并不是一种非常丢人的事情。使用编辑器进行编程,如:`记事本`、`vi/vim` 等,也并不是一件非常自豪的事情。可能有些人会在网上发布这样的言论:“学习编程,刚开始需要使用`记事本`或 `vi/vim`等简单的编辑器软件,不要使用 IDE ”,目的可能是为了让初学者熟悉基础的编程概念和语法,并避免依赖 IDE 的辅助功能。但是,这种方法或许可以起到锻炼基础技能的功能,但这并不意味着 IDE 就不适合初学者。事实上,许多 IDE 还提供了初学者友好的界面和工具,可以帮助新手更快地入门和理解编程。 +> * ① IDE(集成开发环境)就是一系列开发工具的组合套装。这就好比台式机,核心部件是主机。主机就相当于 IDE 的代码编辑器和编译器,有了它们,开发者就可以进行基本的编程工作。然而,正如我们在购买台式机时,通常还会附带显示器、键盘、鼠标、U盘、摄像头等外围设备,IDE 也同样提供了一系列额外的工具和插件,比如:调试器、版本控制集成、代码补全、代码重构工具等。这些“外围设备”让开发过程更加高效、直观,并且能够满足更多的开发需求,使得 IDE 成为一个完整的开发环境。 +> * ② 严格来讲, VS Code 属于编辑器,而不是 IDE;但是,可以通过安装各种插件,来完成 IDE 的功能;而 Visual Studio 和 CLion 属于 IDE。 +> * ③ 在实际开发中,使用 IDE 进行编程并不是一种非常丢人的事情。而使用编辑器,如:`记事本`、`vi/vim` 等,进行编程,也并不是一件非常骄傲的事情。可能有些人会在网上发布这样的言论:“学习编程,刚开始需要使用`记事本`或 `vi/vim`等简单的编辑器软件,不要使用 IDE ”,目的可能是为了让初学者熟悉编程的基础概念和语法,并避免依赖 IDE 的辅助功能。但是,这种方法或许可以起到锻炼基础技能的功能,但这并不意味着 IDE 就不适合初学者。事实上,许多 IDE 还提供了初学者友好的界面和工具,可以帮助新手更快地入门和理解编程。 ## 1.43 IDE 的安装和配置 @@ -724,7 +723,14 @@ int main(){ > * ① 各个厂商可以根据自己的利益和喜好来开发编译器。 > * ② 市场和用户的选择通常是推动编译器开发者遵循标准的主要动力。 -* 这就导致了一个棘手的问题,有的编译器遵守较新的 C 语言标准,有的编译器只能遵守较老的 C 语言标准,有的编译器还进行了很多扩展。比如: +* 并且,不同硬件平台之间也存在差异,这会导致内存管理方式、寄存器、指令集等都有所不同,为了确保 C 语言程序能在这些硬件平台运行,就得针对该平台开发/定制不同的编译器。 + +> [!NOTE] +> +> * ① 上述的情况,在单片机和嵌入式领域更加常见。 +> * ② 总体而言,C 语言具有开放性,并且要适应不同的硬件平台,这使得不同厂商可以根据自己的需求来进行个性化开发/定制。 + +* 这也导致了一个非常棘手的问题,有的编译器遵守较新的 C 语言标准,有的编译器只能遵守较老的 C 语言标准,有的编译器还进行了很多扩展。比如: * GCC、LLVM/Clang 更新非常及时,能够支持最新的 C 语言标准。 * MSVC 更新比较缓慢,迟迟不能支持新标准,例如:VC6.0、VS2010 都在使用 C89 标准,VS2015 部分支持 C99 标准。