• 初识操作系统以及关于qsort()


    操作系统的功能:

    1 操作系统接口

    2 CPU管理

    3 内存管理

    4 设备管理

    5 文件管理

    操作系统的设计采用分层结构,越是上层,越接近用户

    操作系统=内核+系统程序

    系统程序=编译环境+API+AUI

    编译环境=编译程序+连接程序+装载程序

    Linux内核是单内核结构,即把内核作为一个大整体来实现,而各模块之间可以直接调用相关函数

    延迟执行机制----下半部分,软中断,Tasklet,工作队列等

    qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。

    函数原型:

    void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) );

    函数一共四个参数,没返回值。一个典型的qsort的写法如下:

    void qsort(s,n,sizeof(s[0]),cmp);

    其中第一个参数是参与排序的数组名(或者也可以理解成开始排序的地址,因为可以写&s[i],这个问题下面有说明);第二个参数是参与排序的元素个数; 第三个参数是单个元素的大小(推荐使用sizeof(s[0])这样的表达式,下面也有说明);第四个参数就是很多人觉得非常困惑的比较函数,关于这个函数,还要说的比较麻烦...

    下面来讨论cmp这个比较函数(写成cmp是我的个人喜好,你可以随便写成什么,比如qcmp什么的)。典型的cmp的定义是:

    int cmp(const void *a,const void *b);

    返回值必须是int,两个参数的类型必须都是const void *,那个a,b是我随便写的两个参数。 假设是对int排序的话,如果是升序,那么就是如果a比b大返回一个正值,小则负值,相等返回0,后面有例子来说明对不同的类型如何进行排序。

    在函数体内要对a,b进行强制类型转换后才能得到正确的返回值,不同的类型有不同的处理方法。
  • 相关阅读:
    SpringBoot list查询方法
    eclipse创建web项目
    loadrunner获取返回值为乱码
    连接数据库
    lr并发量和迭代的区别
    LoadRunner11.00入门教程出现的问题
    python学习杂记--函数参数的设置
    adb logcat的命令行开启和关闭
    python学习杂记--pycharm控制台输出乱码
    python学习杂记--装饰器
  • 原文地址:https://www.cnblogs.com/ancient/p/3210642.html
Copyright © 2020-2023  润新知