随笔 - 579  文章 - 2 评论 - 35 阅读 - 56万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  C Programming

快速可靠网络传输协议 KCP(转)
摘要:KCP 是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。连时钟都需要外部传递进来,内部不会 阅读全文
posted @ 2016-07-26 16:53 Dufe王彬 阅读(12348) 评论(0) 推荐(0) 编辑
在linux下面使用mtrace来检查一般程序的内存溢出
摘要:在linux下面使用mtrace来检查一般的程序的内存溢出对于内存溢出之类的麻烦可能大家在编写指针比较多的复杂的程序的时候就会遇到。Debug起来也是比较累人。其实linux系统下有一个使用的工具可以帮忙来调试的,这就是mtrace。Mtrace主要能够检测一些内存分配和泄漏的失败等。下面我们来学习一下它的用法。使用mtrace来调试程序有4个基本的步骤,需要用到GNU C 函数库里面的一些辅助的函数功能。1. 在需要跟踪的程序中需要包含头文件<mcheck.h>,而且在main()函数的最开始包含一个函数调用:mtrace()。由于在main函数的最开头调用了mtrace(),所 阅读全文
posted @ 2011-09-30 11:31 Dufe王彬 阅读(1992) 评论(0) 推荐(0) 编辑
彻底搞定C指针
摘要:《彻底搞定C指针》第一篇 变量的内存实质要理解C指针,我认为一定要理解C中“变量”的存储实质,所以我就从“变量”这个东西开始讲起吧!先来理解理解内存空间吧!请看下图:内存地址→ 6 7 8 9 10 11 12 13-----------------------------------------------------------------··· | | | | | | | |··-----------------------------------------------------------------如图所示,内存只不过是一个存放数 阅读全文
posted @ 2011-09-30 10:34 Dufe王彬 阅读(204) 评论(0) 推荐(0) 编辑
彻底搞定C指针-指向另一指针的指针
摘要:一. 回顾指针概念:今天我们又要学习一个叫做指向另一指针地址的指针。让我们先回顾一下指针的概念吧!当我们程序如下申明变量:short int i;char a;short int * pi;程序会在内存某地址空间上为各变量开辟空间,如下图所示。内存地址→6 7 8 9 10 11 12 13 14 15-------------------------------------------------------------------------------------… | | | | | | | | | | ------... 阅读全文
posted @ 2011-09-30 09:27 Dufe王彬 阅读(286) 评论(0) 推荐(0) 编辑
[转]深入理解C语言指针的奥秘
摘要:来源:http://community.csdn.net/Expert/topic/5290/5290998.xml?temp=.1724054指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr; (3)int**ptr; (4)int(*ptr)[3]; (5)int*(*ptr)[4]; 指针的类型 从语法的角度看,你... 阅读全文
posted @ 2011-09-30 09:15 Dufe王彬 阅读(223) 评论(0) 推荐(0) 编辑
堆和栈的区别(转过无数次的文章)(转)
摘要:一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域。 - 程序结束后由系统释放。 4、文字常量区 —常量字符 阅读全文
posted @ 2011-09-29 14:16 Dufe王彬 阅读(193) 评论(0) 推荐(0) 编辑
linux c 多线程
摘要:linux下C语言多线程编程实例学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵。下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。下面是我们的代码:下面我们先来编译、执行一下引文:falcon@falcon:~/program/c/code/ftp$ gcc -lpthread -o thread_example thread_example.cfalcon@falcon:~/program/c/code/ftp$ ./thread_example我是主函数哦,我正在创建线 阅读全文
posted @ 2010-12-15 14:08 Dufe王彬 阅读(383) 评论(0) 推荐(0) 编辑
逐步设置vim C/C++语法高亮显示和自动缩进
摘要:vim简介Vim(Vi Improved)是一个类似于vi的文本编辑器,在Vi的基础上增加了很多新的特性和功能。Vim以其强大的功能和可定制能力,成为Linux/Unix环境下开源的最重要的编辑器之一(另一个是Emacs),被众多开发者所喜爱。笔者此时所用的是最新的7.1版本。与大部分其它编辑器不同,进入Vim后,缺省状态下键入的字符并不会插入到所编辑的文件之中。Vim的模式(mode,可以简单地... 阅读全文
posted @ 2009-06-18 20:52 Dufe王彬 阅读(689) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示