- 博客(10)
- 资源 (3)
- 收藏
- 关注
转载 C语言Volatile的使用
一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的
2014-04-08 11:07:47 528
转载 C指针的一些说明
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr; (3)int**ptr; (4)int(*p
2014-04-08 10:45:14 539
原创 根据二叉树的前序遍历和中序遍历结果重建出该二叉树
struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_nLeft; BinaryTreeNode* m_nRight;};BinaryTreeNode* Construct(int* preorder,int* inorder,int length){ if(preorder=NULL||inorder=NULL||length<=0) re
2014-04-03 10:35:53 582
转载 TCP三次握手
TCP是一个面向连接的服务,面向连接的服务是电话系统服务模式的抽象,每一次完整的数据传输都必须经过建立连接,数据传输和终止连接三个过程,TCP建立连接的过程称为三次握手,下面说一下三次握手的具体过程:TCP三次握手过程主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段,主机A告诉主机B 两件事:我想要和你通信;你
2014-04-01 15:30:31 819
转载 阿里笔试总结
题目一:一个有10亿条记录的文本文件,已按照关键字排好序存储,设计算法,可以快速的从文件中查找指定关键字的记录答案:10亿在 G量级, 分成100份, 为10M量级, 基本上放入内存无压力了.在这10亿记录中, 均分为100份, 把每份的第一条记录关键字和此记录对应的文件偏移量先扫入内存(类似索引), 这里需要磁盘随机io 100次.这样可以马上定位出指定关键字所在的记录块
2014-04-01 15:24:42 928
原创 某二叉树的前序遍历序列为-+a*b-cd/ef,后序遍历序列为abcd-*+ef/-,问其中序遍历序列是
前序遍历为:根左右后序遍历为:左右根中序遍历为:左根右前序的:-+a*b-cd/ef中第一个出现的一定是最左面的叶子节点a,而最终的根节点一定是第一个符号-,-cd 和/ef一定为两个分支,则有 - / \ +
2014-04-01 15:07:44 7877
原创 #define PACK_STRUCT _attribute_ ((_packed_))编译器按字独立分配
定义编译器字节对齐方式gcc中,在某个变量x后使用“__attribute__((packed))”可以通知编译器保证字节对齐。在lwip中包是存储在结构体里,而结构体及其成员可能存在字节不对齐现象,32位/16位CPU不能正确读写这类数据,导致数据包操作错误。如下图:32位系统中,x为3字节,y为4字节,z为1字节。系统将不能正确读写y。 31
2014-04-01 13:54:46 2964
原创 用两种颜色去染排成一个圈的6个棋子,如果通过旋转得到则只算一种,一共有多少种染色:
假设有两种颜色AB,那么两种颜色的个数为P(m,n)则全A或者全B各有一种:P(6,0)=P(0,6)=1,共2种 P(5,1)=P(1,5)=1,共2种 P(4,2)=P(2,4)=3,共6种//相邻的一种AA
2014-04-01 10:45:21 5625
原创 32bits系统中foo(2^31-3)的值
题目:int foo(int x){return x & -x}其中2^31-3=2147483645;二进制为01111 11111 11111 11111 11111 11111 01 取反二进制为10000 00000 00000 00000 00000 00000 11则结果为 x
2014-04-01 09:36:21 2464
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人