分类 编程.C 中的文章

八个基础排序

sort排序 std::sort( )函数是库函数提供的排序函数,必须包括头文件#include <algorithm>,它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n) Sort函数有三个参数:……

阅读全文

实现atoi和itoa函数

题目1: 把字符串转化为整数 有整数字符串,"13579", 和 "246810". 请写一个函数把这两个字符串转化为整数 步骤: 先判断正负 遍历字符串,转换字符为整数 //atoi.cc #include <stdio.h> int my_atoi(char *str) { bool bmin = false; int result = 0; //先判断正……

阅读全文

协程解析二 | 云风的coroutine

概述 云风的coroutine是通过ucontext来控制程序运行时上下文的,我们来根据该库提供的几个接口,和一个demo来解释协程的运行原理。如果不了解ucontext的,建议先了解ucontxt 环境……

阅读全文

协程解析一 | ucontext

概述 最近在研究协程的实现原理,看了云风的coroutine和腾讯的开源库libco后,原来要实现一个协程库也没那么难。我先来讲讲云风的coroutine库。他使用的是 uncontext来保存程序运行上……

阅读全文

struct中使用char[]

缘由 最近在看redis的源码,刚开始看sds,看到这块代码 struct __attribute__ ((__packed__)) sdshdr5 { unsigned char flags; /* 3 lsb of type, and 5 msb of string length */ char buf[]; }; 好奇为什么使用 char buf[],而不用char *buf,找到答案记录一下。 struct中的char*……

阅读全文

Libevent | 定时器

libevent 实现定时器流程 首先初始化libevent库,并保存返回的指针 struct event_base * base = event_init(); 实际上这一步相当于初始化一个Reactor实例;在初始化libevent后,就可以注册事件了。 初始化事件event,设置回调函……

阅读全文