什么是模板?就是告诉编译器一个模子,让编译器根据不同的类型生成不同的代码。编写与类型无关的函数,是代码复用的一种手段。函数模板 template<typename T> void Swap( T& l…
分类:c
c/c++内存管理
内存区域:由这张图我们可以看到程序在内存中的分布,不同的变量存放在不同的区域,而内核空间是用户无法进行读写的用来存储有关的信息。要注意栈向下生长,堆向上生长,堆栈相对而生,我们今天主要谈在堆上申请空间的相关知识,我们知道…
使用libuv编写简单的TCP Server
libuv使用基于事件的异步回调的方式来处理多个IO事件 因此使用一个线程就可以监控大量的文件(socket等文件类型)这种基于回调的编程风格在代码的可读性上比较差,这里梳理一下流程 创建TCP服务端的三个步骤: 创建T…
string与char *小知识
在C++中,使用字符串相对于char *,我更倾向于使用string。其优点更安全,更多的易用接口。 简化的string类似于下列实现,除了比char 多几个字节的占用空间外几乎一样,但比char 省心很多,这也是C…
【Redis5源码学习】浅析redis命令之randomkey篇
baiyan 命令语法 命令含义:从当前选定数据库随机返回一个key命令格式: RANDOMKEY 命令实战: 127.0.0.1:6379> keys * 1) "kkk" 2) "key1" 127.0.0.1…
对连接跟踪的INVALID状态的深入理解
用户态的连接跟踪中的几种状态 连接跟踪系统中定义了一个连接可能处于以下几种状态: NEW:一个连接的初始状态(例如:TCP连接中,一个SYN包的到来),或者防火墙只收到一个方向的流量(例如:防火墙在没有收到回复包之前)。…
面向对象与面向过程最简单的理解
面向对象:苹果->吃 面向过程:吃(苹果)
C# Telnet 类库代码,谨献给还在寻找C# Telnet类库的兄弟
C# Telnet 类库代码 今天给笔记本装了固态,速度提升很明显,很高兴,发个微博留作纪念。 自学的C#,干网络的,想弄个工具方便日常工作,想自己实现批量操作的工具。 想起来很简单做起来很费劲。网上一顿乱查。 这里感谢…
Android Studio NDK开发-其他编译选项
NDK即要支持交叉编译,还需要支持各个Android版本的编译,还有一些其他情况的编译,比如c和c++等。NDK提供了一些编译选项,用来支持不同的编译需求。 以前的NDK开发都是在Android.mk和Applictio…
韦东山一期视频学习笔记-Nandflash
硬件原理分析 引脚功能 CLE高电平ALE低电平时传输命令CLE低电平ALE高电平时传输地址ALE和CLE低电平时传输数据CLE片选信号低电平有效,因为LDATA信号是多芯片共用的RnB状态引脚,高电平表示空闲,低电平表…
浮点数与十六进制互相转换
利用 强制转换类型实现。 浮点数转十六进制 实现: float f = 123.45f; unsigned char *hex = (unsigned char *)&f; 打印输出: for(int i = 0…
Week 1:那些值得一阅的好文章
SF 产品 news Noodles 《SegmentFault 热门内容优化》 系列文章 neu 《Gradle for Android 第一篇( 从 Gradle 和 AS 开始 )》及系列文章牧曦之晨 《[译]GC…