- 博客(15)
- 资源 (3)
- 收藏
- 关注
转载 C++构造函数调用顺序
if(子类没有自定义构造函数){ if(基类没有自定义构造函数) { 用子类定义对象时,先自动调用基类的默认构造函数,再调子类的默认构造函数。 } else if(基类有自定义无参构造函数) { 用子类
2013-12-01 22:44:38
615
转载 非递归遍历二叉树
在网上看了一些用非递归实现先序中序后序遍历二叉树的代码,都很混乱,while、if各种组合嵌套使用,逻辑十分不清晰,把我也搞懵了。想了大半天,写了大半天,突然开了窍,实际上二叉树的这三种遍历在逻辑上是十分清晰的,所以才可以用递归实现的那么简洁。既然逻辑如此清晰,那么用非递归实现也应该是清晰的。自认为自己的代码比网上搜到的那些都清晰得多,好理解得多。稍微解释一下:先序遍历。将根节点入
2012-10-04 21:39:38
732
原创 优先级和结合性
先看优先级,当运算符优先级相同时再看结合性。结合性是指:运算对象先于哪个运算符结合在一起运算。优先级规律:前提是单目运算符优先级最高,接下来的规律是算术运算符>移位>关系>逻辑>赋值>条件(算一关,挪夫条)。
2012-02-27 22:18:39
838
原创 strcpy,strncpy;strcat,strncat;memcpy,memncpy;
strcat(str1,str2):1)str1必须足够大;2)str1原来的'\0'被取消,只保留str2的'\0',也就是str2从str1的'\0'位置开始占用; 哎,懒得写了,直接上源码了,我想说的再多,不如真真切切的看到其实现方式实在... ...呵呵.. ...//linux2.6.10中源码char * strcpy(char * dest,const char *sr
2012-02-27 22:15:36
6609
转载 进程上下文、中断上下文、内核代表进程执行、内核空间、用户空间释疑
《LKD2》P21对于进程上下文的解释是:当程序执行系统调用或触发了某个异常,陷入内核空间。此时我们称“内核代表进程执行”并处于进程上下文。 对于此段我的理解是进程的程序代码只能运行于用户空间,只有当执行了系统调用时才会在内核空间执行。程序执行到一半的时候由于并没有结束,会产生一些资源使用情况,中间数据等,这些需要一并传递到内核空间。所以要暂存为一个进程上下文到某个地方,程序代码在
2012-02-20 19:50:03
1339
原创 首长生日之大宴群臣
这周六,首长于犀浦韩家港摆下两桌阔宴,宴会上群贤皆至,同时有幸认识很多朋友。宴会前夕,首长发自心扉的感言让人振聋发聩,于心戚戚。第一次参加这么隆重的生日宴会,第一次参加这么正式的生日宴会,首长30岁生日感言让我想到很多,我小时候的经历和他有些地方颇多相似,我听得格外真切,想到几年后自己也行将30,结合自己目前境遇感觉实在尴尬。古人说30而立,我想那个“立”应该就是立业了,古人的逻辑是成家立业,想到
2011-11-20 23:19:32
724
原创 关于浮云
很久之前就听说过“浮云”了,神马都是浮云,就是这个浮云,我今天一不小心找到此词的出处了,原来早在两千多年前的孔夫子就说过了,摘录如下: “饭疏食,饮水,曲肱而枕之,乐亦在其中矣。不义而富且贵,於我如浮云。” 可见孔先生的思想影响果然深远,横亘两千多年... ...
2011-11-13 10:42:24
361
原创 纪念千年一遇的神圣时刻
现在这么晚了才想起来记录一下昨天的事情,昨个61神棍节,约友二三人,骑游了一番... 闲聊了一番... 还见识了一番,这个见识还有点夸张... 感觉好久没有出去逛过啦... ...呼呼(~ o ~)~zZ
2011-11-13 01:09:28
678
转载 关于new和operator new()
new和operator new的参数之间有一个对应关系,operator new()可以不止一个参数。但是operator new()的第一个参数一定是size_t size,对应关系如下 new (x1,x2,...,xn) A( z1,z2,...,zn) operator new(size_t y,x1,x2,...,xn).总是将对象A所占内存大小传递给operato
2011-10-19 20:43:42
662
转载 x&(x-1)含义
求下面函数的返回值(微软) -- 统计1的个数-------------------------------------int func(int x){ int countx = 0; while(x) { countx
2011-09-12 18:34:53
2124
原创 复制构造函数&&赋值函数(何时调用,什么时候调用)
平时看C++,对复制构造函数,赋值函数的概念是知道的,但一直不太清楚在调用函数(函数形参是类)、从函数返回一个类对象以及赋值时,这些函数的调用关系具体是怎么样的。今天就来个了断。主要针对复制构造函数及赋值函数,至于普通构造函数及析构函数是简单的。测试1:测试代码如
2011-09-12 17:36:56
1718
转载 C语言中函数参数的入栈顺序
C语言中函数参数的入栈顺序分类: linux编程 2011-03-08 10:06 79人阅读 评论(0)收藏 举报 对技术执着的人,比如说我,往往对一些问题,不仅想做到“知其然”,还想做到“知其所以然”。C语言可谓博大精深,即使我已经有多年的开发
2011-08-22 16:13:00
555
原创 套接字的内核实现原理以及对数据的处理流程简述
套接字的内核实现以及对数据的处理流程简述 总的的来说,对内核协议栈的学习和研究,应将重点放在层间接口上,也就是数据是怎么在层间传递的,这其中又可分为两大部分,第一部分是:链路层网络层;其他层间的传递(eg:IP-->TCP,TCP->IP);其中每部分又分为收发两部分。第一部分的发送和接收都是通过软中断来实现,尤其注意网络层的接收函数是注册在链路层的链表中的,通过dev_add_pac
2011-06-09 21:09:00
1967
转载 iperf使用
iperf 版本建议采用linux版本,事实上,windows版也很好用。带宽测试通常采用UDP模式,因为能测出极限带宽、时延抖动、丢包率。在进行测试时,首先以链路理论带宽作为数据发送速率进行测试,例如,从客户端到服务器之间的链路的理论带宽为100Mbps,先用 -b 100M进行测试,然后根据测试结果(包括实际带宽,时延抖动和丢包率),再以实际带宽作为数据发送速率进行测试,会发现时延抖动和丢包率比第一次好很多,重复测试几次,就能得出稳定的实际带宽。1、UDP 模式服务器端iperf -u -s客户端ipe
2011-06-02 19:49:00
1319
转载 linux设备驱动程序之接收发送队列
linux协议栈之接收发送队列网卡驱动把数据从设备拷贝到内存后会通过 netif_rx 把数据提交给上层,而上层通过 dev_queue_xmit 发送数据,如果符合条件,调用驱动的 hard_start_xmit 把数据发送出去。本文主要描述这两个流程的细节,其中流量控制,虚拟设备的绑定,网桥都在这一层有所涉及,但不予讨论,并且基本不涉及 NAPI。1,核心数据结构struct softnet_data{ int throttle; int cn
2011-05-30 15:54:00
1952
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人