好久没用,刚好需要测试一下排序。顺便把VSCode的配置也记录一下。
准备
1.安装编译环境,我用的mingw64
。官网https://sourceforge.net/projects/mingw-w64/files/
记得安装好配置环境变量,或者配置到系统环境变量。![在这里插入图片描述](https://img-blog.csdnimg.cn/8c439619f7ed44f696b58c2818101823.png)
配置
1、配置编译
![在这里插入图片描述](https://img-blog.csdnimg.cn/6741e2a9d64d47f99d45403eb13b5090.jpeg)
![在这里插入图片描述](https://img-blog.csdnimg.cn/099647d689304b92a0522ef6562d3530.jpeg)
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++ make",
"command": "E:\\Shared_Folder\\toolchain\\mingw64\\mingw64\\bin\\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "E:\\Shared_Folder\\toolchain\\mingw64\\mingw64\\bin\\gcc.exe"
}
]
}
运行编译生成
![在这里插入图片描述](https://img-blog.csdnimg.cn/f5f5c301d0544492b376070a90196ce8.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/d290c697f0cd4260a4a6a2e94a108f1e.png)
2、配置调试
![在这里插入图片描述](https://img-blog.csdnimg.cn/276f81bb905b43d2bdd4dc0308933ef4.png)
我这里选了gdb,使用windows自带的也可以。
![在这里插入图片描述](https://img-blog.csdnimg.cn/d5104022dc504b258cfe11af2f7318a9.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/c81a00ea80e444cfa4a650ba7d1a47ba.png)
生成的文件名和调试名称保持一致,调试前调用编译生成任务。
![在这里插入图片描述](https://img-blog.csdnimg.cn/6e7352263b9043579c3753e3c7bb5baa.png)
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": true,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "E:\\Shared_Folder\\toolchain\\mingw64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++ make"
}
]
}
qsort测试
1、结构体测试
#include "stdio.h"
#include "stdint.h"
#include "stdlib.h"
typedef struct
{
char name[6];
uint8_t age;
} people_t;
int cmpfun(const void *a, const void *b)
{
people_t *aa = (people_t *)a;
people_t *bb = (people_t *)b;
// 如果cmp返回值为正数,二者交换位置,返回值为负,二者位置不变。返回值为0,则随机。
return (aa->age - bb->age); // 升序排列
}
people_t member[4] = {"Tom", 10, "Jerry", 20, "Alize", 100, "Saber", 50};
void main(void)
{
qsort(member, 4, sizeof(people_t), cmpfun);
for (uint8_t i = 0; i < 4; i++)
{
printf("Name:%s\n", member[i].name);
printf("Age :%d\n", member[i].age);
}
}
输出结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/7f7ab7e0dd424d469d5d3745e4971424.png)