知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技  > 软件

代码中的软件工程

发表时间:2022-03-25来源:网络

首先感谢孟宁老师的教学指导。这次的项目用的是孟老师的menu项目。

参考 https://github.com/mengning/menu

   https://mp.weixin.qq.com/s/KJ4oU5ggccu1f5mMaEo1eg

 

基于 VS Code 的 C/C++开发调试环境配置

 

打开 VSCode 点击最左侧的管理扩展插件图标(Ctrl+Shift+X),如下图在扩展插件市场里搜索 C++,找到 Microsoft C/C++扩展插件“C/C++ for Visual Studio Code”,点击 Install 安装即可。

安装 C/C++编译器和调试器。VSCode 的 C/C++插件并不包含 C/C++编译器和调试器,我们需要自己安装 C/C++编译器和调试器,如果您机器上已经安装过 C/C++编译器和调试器可以直接使用。常用的 C/C++编译器和调试器如下:Mingw-w64 is GCC for Windows 64 & 32 bits - http://mingw-w64.org。不同的 C/C++编译器和调试器的用法有所不同,由于 GCC 在不同平台上都可以使用,而且用法基本一致,我们这里选用 Mingw-w64(包含 GCC 和 GDB)用于 Windows 环境

 

Windows 环境下安装 Mingw-w64

MinGW(Minimalist GNU for Windows), 是一个适用于微软 windows 应用程序的极简开发环境。MinGW 提供了一个完整的开源编程工具集,适用于原生 MS-Windows 应用程序的开发,并且不依赖于任何第三方 C 运行时 DLL。MinGW 主要供在 MS-Windows 平台上工作的开发人员使用,也可以跨平台使用。Mingw-w64 是原始 mingw.org 项目的升级版,该项目旨在支持 Windows 系统上的 GCC 编译器。它在 2007 年进行了分支,以便为 64 位和新 API 提供支持。从那以后,它得到了广泛的使用和分发。

配置 Visual Studio Code 构建任务

一般在命令行下使用"code ."命令可以打开及当前文件夹,同时将当前文件夹作为工作区(workspace)。同时 VS Code 会在当前工作区创建.vscode 文件夹并在其中创建三个 JSON 配置文件:

通过菜单 Terminal 选择 Configure Default Build Task... 或者 Configure Tasks... 然后选择 C/C++: gcc build active file,在当前项目目录(工作区)下自动生成.vscode/tasks.json 配置文件,构建任务的简要配置范例 tasks.json 如下,其中"command"是指明编译器;"args"是编译器 gcc 的参数;"isDefault"为 true 表示同时按 Ctrl+Shift+B 快捷键自动执行默认构建任务(Default Build Task)。

 配置文件 launch.json 用于告诉 VS Code 如何调用调试器调试程序,我们这里 GDB debugger 为例。配置调试环境可以通过左侧的“启动和调试”图标或者快捷键 Ctrl+Shift+D 进入 Debug 二级菜单,然后创建一个 launch.json 配置文件(create a launch.json file),选择 C++(GDB/LLDB)

触发程序调试的方法是通过菜单 Run 选择 Start Debugging 或者直接按 F5 键开始调试程序。

这是写的程序和运行结果:

                       

 

代码规范与代码风格

 

正如孟老师在课件中写的那样:罗马不是一天建成的,不要期望一蹴而就。可以看到项目包中的menu的程序也是逐渐成长,从lab1到lab7展现了我们先在一个hello文件得到启发,逐步引入规范化编码、引擎、模块化思想、可重用接口和线程安全等内容,体现了软件工程的思想,使得程序更加的健壮。

在整个代码中可以见到函数声明和定义是分开放置的,这样做的好处是:

编译速度:将所有包含的文件连接在一起然后进行解析时,减少包含文件中代码的数量和复杂性将缩短编译时间。

避免代码重复/内联:如果您在头文件中完全定义了一个函数,则包含该头并引用该函数的每个目标文件都将包含该函数的自身版本。附带说明一下,如果要进行内联,则需要将完整的定义放入头文件中(在大多数编译器中)。

封装/清晰度:一个定义良好的类/函数集以及一些文档应足以供其他开发人员使用您的代码。 (理想情况下)不需要他们了解代码的工作原理-那么为什么要求他们筛选代码呢? (当然,相反的说法是,当需求仍然存在时,对于他们访问实现可能会很有用)。

在此模块中的具体体现就是:在.h文件中进行函数声明,在.c文件中进行具体的函数实现。如下图:

menu.h

menu.c

规范化的注释

注释也要使用英文,不要使用中文或特殊字符,要保持源代码是ASCII字符格式文件;不要解释程序是如何工作的,要解释程序做什么,为什么这么做,以及特别需要注意的地方;每个源文件头部应该有版权、作者、版本、描述等相关信息。

在代码中的具体体现:

 

代码规范:

•缩进:4个空格;

•行宽:< 100个字符;

•代码行内要适当多留空格,如“=”、“+=” “>=”、“

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜