1. # CC which means gcc
    2. CC := gcc
    3. #
    4. .PHONY: build
    5. build: sqlist
    6. # sqlist is a binary file
    7. sqlist: sqlist.o
    8. $(CC) -o $@ sqlist.o
    9. sqlist.o: sqlist.c
    10. $(CC) -c -g sqlist.c
    11. .PHONY: clean
    12. clean:
    13. rm -rf sqlist sqlist.o
    14. .PHONY: clean_log
    15. clean_log:
    16. rm -rf .gdb_history
    root@DESKTOP-4VN4G0C:/Desktop/DS# make clean
    rm -rf sqlist sqlist.o
    root@DESKTOP-4VN4G0C:/Desktop/DS# make clean_log
    rm -rf .gdb_history 
    root@DESKTOP-4VN4G0C:/Desktop/DS# make build
    gcc -c -g sqlist.c
    gcc -o sqlist sqlist.o
    

    easy demo

    #include "stdlib.h"
    #include "stdio.h"
    #include "string.h"
    #include "time.h"
    #define MAXSIZE 1024
    
    typedef int Elemtype;
    
    typedef struct SqList
    {
        Elemtype data[MAXSIZE];
        int length;
        int size;
    }SqList,*SqListPtr;
    
    void InitSqList(SqListPtr L,int *list);
    int SqListNulL(SqListPtr L);
    int FindMin(SqListPtr L);
    void DeleteMin(SqListPtr L,Elemtype * e);
    void SqListShow(SqListPtr L);
    int main();
    
    int main()
    {   Elemtype temp;
        int numlist[10];
        srand((unsigned)time(NULL));
    
        for (int i=0;i<=9;i++)
            numlist[i]=rand()%50;
        SqList L ;
        InitSqList(&L,numlist);
        SqListNulL(&L);
        SqListShow(&L);
        DeleteMin(&L,&temp);
        SqListShow(&L);
    }
    void InitSqList(SqListPtr L,int *list)
    {
        memset(L->data,0,1024);
        for (int i=0;i<=9;i++)
            L->data[i]=list[i];
        L->length = 10;
    }
    int SqListNulL(SqListPtr L)
    {
        if (L->length ==0)
        {
        printf("the SqList is null");
        exit(0);
        }
    }
    
    int FindMin(SqListPtr L)
    {
        Elemtype min;
        int idx =0;
        min = L->data[0];
        for (int i=1;i<L->length;i++)
            if(min > L->data[i])
                {
                  min = L->data[i];
                  idx =i;
                }
        return  idx;
    }
    void DeleteMin(SqListPtr L,Elemtype * e)
    {
    int idx =FindMin(L);
    *e = L->data[idx];
    L->data[idx]=L->data[L->length-1];
    L->length-=1;
    }
    
    void SqListShow(SqListPtr L)
    {
        for (int i=0;i<L->length;i++)
        printf("%d ",L->data[i]);
        printf("\n");
    }