![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
Amosstan
一枚快乐的CODER~~
展开
-
C语言获取随机mac
在某些项目中,需要通过随机数的方式获取随机mac。下面记录一下方法。原创 2023-03-07 11:02:23 · 34434 阅读 · 1 评论 -
排序 - 选择排序
一、前言 选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。二、算法步骤首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕。三、代码示例#include <stdio.h>void bubble_sort(int arry[], int len){ int i, j, tmp;原创 2021-10-15 15:48:50 · 140846 阅读 · 0 评论 -
排序 - 冒泡排序
一、前言 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。二、算法步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后原创 2021-10-15 15:16:35 · 140789 阅读 · 0 评论 -
C语言实现有锁队列
一、前言有锁队列不同于无锁队列,有锁队列是在入列或者出列时,为队列上锁,这样保证代码在运行时同一时间只能有一种操作,因此避免了资源的抢占。使用场景生产消费者模型之类的场景可以使用。二、代码头文件定义我们定义一个USER_INFO结构体数据类型,里面存储了一些信息,用单向链表的形式在队列中进行存储。quque.h代码如下://// Created by jerry on 2021/4/6.//#ifndef C_QUEUE_DEMO_QUEUE_H#define C_QUE原创 2021-04-06 18:34:13 · 209122 阅读 · 0 评论 -
C语言之 - 生产消费者模型
一、前言生产消费者模型,主要考验的就是对互斥这部分的理解,下面就用了简单的例子来谈一谈经典的生产消费者模型。二、用到的知识sem_init(); // 初始化信号量sem_wait(); // 信号量减一sem_post(); // 信号量加一三、工作模型生产者每隔一段时间生产一个产品入库消费者每隔一段时间消费一个产品出库两者的工作时间不同思路: 生产者生产物品时,生产信...原创 2018-12-04 19:41:37 · 216427 阅读 · 0 评论 -
C语言之 - 单向链表
C语言之 - 单向链表一、前言做项目的时候,经常会遇到这么一个场景:**需要在具有相同属性的数据(例如:学生的学号、名字组成的一串数据)里面查找或者追加或者删除一些数据。**那么,简单的数组远远不能达到目的,因为数组必须实现确定大小,不能动态申请和释放。然而使用malloc动态分配也不能实现,不能够实现局部申请和释放。那么,链表应运而生。我们这篇文章主要介绍单向链表。二、链表定义定义: ...原创 2018-11-20 14:27:43 · 215567 阅读 · 0 评论 -
C语言之 - 双向链表
一、前言之前,写过一篇《C语言之 - 单向链表》的文章,有兴趣的朋友可以看一下。双向链表再某些特定的场合结合着单向链表能够非常简便、快速的对数据进行操作,比如有锁队列等。可以看一下双向链表的百科:百科-双向链表二、实现过程我们结合着注释,一起来学习一下双向链表。文章底部有源码供大家下载。首先我们定义一个结构体节点:typedef struct s_msg{ int count;...原创 2018-11-22 17:23:28 · 214784 阅读 · 0 评论 -
C语言之 - 封装自己的打印函数
一、前言最近写C语言代码时,感觉用printf()输出不够方便,想着能不能做到和Android的Log.d()相类似,于是乎,百度了一下,封装个自己的打印函数,仅供参考。二、封装代码#include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;stdlib.h&amp;amp;gt;#include &amp;amp;lt;stdarg.h&原创 2018-11-20 14:55:56 · 220006 阅读 · 0 评论 -
C语言实现TLV消息组成
前言 最近做项目时,需要发送TLV格式的网络字节序,在网上搜多了很多有关TLV的文章,感觉有些不通用。于是通过自己的摸索与测试,终于通过自己的方法组起TLV消息,并通过socket发送出去。在这里,希望和大家交流一下有关TLV的知识,写的不好的地方,请指正。TLV结构体struct TLV_HEAD // tlv消息头{ int length; // t...原创 2018-04-27 13:24:28 · 219657 阅读 · 3 评论