标签:return begin 技术 span 构建版本号 handler 调用 fine else
一、编译和调试环境配置
1、安装vscode中的C/C++扩展
打开vscode,点击侧边栏的扩展(Ctrl+Shift+X),搜索c++,点击安装C/C++
C/C++扩展不包含C++编译器或调试器
2、安装C++编译器和调试器
本机使用Windows系统,因此下载Mingw-w64(Windows中的GCC,http://mingw-w64.org)
安装过程中有几个选项需要说明:
Version制定版本号,从4.9.1-8.x.0,按需选择,没有特殊要求就用最新版吧;
Architecture跟操作系统有关,64位系统选择x86_64,32位系统选择i686;
Threads设置线程标准可选posix或win32;
Exception设置异常处理系统,x86_64可选为seh和sjlj,i686为dwarf和sjlj;
Build revision构建版本号,选择最大即可
安装完成后,需要将安装目录下的bin目录加入环境变量
添加环境变量后,打开CMD,执行gcc -v看看是否安装成功
3、
使用vscode打开一个C文件,点击侧边栏的运行(Ctrl+Shift+D),点击运行和调试,选择环境C++(GBD/LLDB)
#注意文件夹路径不能有中文
选择配置gcc.exe
生成了.vscode文件夹,其中有launch.json和tasks.json文件
tasks.json告诉vscode如何生成(编译)程序的文件,将调用gcc编译器基于源代码创建可执行文件
launch.json用于调试器设置
二、软件工程方法
一个菜单程序的生长
初始代码lab2:
#include <stdio.h> #include <stdlib.h> int main() { char cmd[128]; while(1) { scanf("%s", cmd); if(strcmp(cmd, "help") == 0) { printf("This is help cmd!\n"); } else if(strcmp(cmd, "quit") == 0) { exit(0); } else { printf("Wrong cmd!\n"); } } }
1、模块化设计
模块化(Modularity)是在软件系统设计时保持系统内各部分相对独立,以便每一个部分可以被独立地进行设计和开发
lab3.1代码
#include <stdio.h> #include <stdlib.h> int Help(); int Quit(); #define CMD_MAX_LEN 128 #define DESC_LEN 1024 #define CMD_NUM 10 typedef struct DataNode { char* cmd; char* desc; int (*handler)(); struct DataNode *next; } tDataNode; static tDataNode head[] = { {"help", "this is help cmd!", Help,&head[1]}, {"version", "menu program v1.0", NULL, &head[2]}, {"quit", "Quit from menu", Quit, NULL} }; int main() { /* cmd line begins */ while(1) { char cmd[CMD_MAX_LEN]; printf("Input a cmd number > "); scanf("%s", cmd); tDataNode *p = head; while(p != NULL) { if(strcmp(p->cmd, cmd) == 0) { printf("%s - %s\n", p->cmd, p->desc); if(p->handler != NULL) { p->handler(); } break; } p = p->next; } if(p == NULL) { printf("This is a wrong cmd!\n "); } } } int Help() { printf("Menu List:\n"); tDataNode *p = head; while(p != NULL) { printf("%s - %s\n", p->cmd, p->desc); p = p->next; } return 0; } int Quit() { exit(0); }
2、可重用接口
3、线程安全
二、软件工程理解和分析
标签:return begin 技术 span 构建版本号 handler 调用 fine else
原文地址:https://www.cnblogs.com/LiXingxuan/p/13946255.html