VScode运行C语言,qsort测试例子

好久没用,刚好需要测试一下排序。顺便把VSCode的配置也记录一下。

准备

1.安装编译环境,我用的mingw64。官网https://sourceforge.net/projects/mingw-w64/files/

记得安装好配置环境变量,或者配置到系统环境变量。在这里插入图片描述

配置

1、配置编译

在这里插入图片描述
在这里插入图片描述

{
	"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"
		}
	]
}

运行编译生成
在这里插入图片描述
在这里插入图片描述

2、配置调试

在这里插入图片描述
我这里选了gdb,使用windows自带的也可以。
在这里插入图片描述
在这里插入图片描述
生成的文件名和调试名称保持一致,调试前调用编译生成任务。
在这里插入图片描述

{
  // 使用 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);
    }
}

输出结果:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盗版摩羯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值