
C/C++
文章平均质量分 64
shaovey
这个作者很懒,什么都没留下…
展开
-
C语言中的位域
位域又叫位段,用于指定该成员在内存存储时所用到的位数,从而更紧凑的表示数据。有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”,是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个转载 2008-08-04 10:48:00 · 869 阅读 · 0 评论 -
不重复随机数的实现方法
如何产生不重复的随机数?最容易想到的方法,是逐个产生这些随机数,每产生一个,都跟前面的随机 数比较,如果重复,就重新产生。这是个很笨的方法,且比较次数呈线性增长,越往后次数越多。其实这些比较是多余的,完全可以不进行比较,只要反过来,按顺序产生这些数,但随机产生它们的位置。例如下面产生100个100以内不重复随机数的代码:int a[100];for(i=0; ifor(i=99; i>=1;转载 2008-08-04 10:50:00 · 972 阅读 · 0 评论 -
静态库和共享库
创建和使用静态库1. 创建目录 mkdir –p test/sub2. 在子目录sub/下编写hello.c和hello.h /*****hello.c*****/ #include #include “hello.h” void hello() { printf(“Hello!/n”); } /*****hello.h*****/ #include void hello();3原创 2008-08-06 15:38:00 · 1174 阅读 · 0 评论 -
linux C 出错处理
使用assert宏定义#include void assert (int expression);功能当expression为假时,它向stderr打印一条出错信息,然后调用abort来中止程序运行。注意assert的缺点是调用频繁会极大地影响程序执行速度。解决方法,在前面加一个NODEBUG宏,来禁用assert的调用。#include #define NDEBUG#include 把NDEBU原创 2008-08-19 15:08:00 · 828 阅读 · 0 评论 -
Connection reset by peer原因分析
我用C语言写了一段程序,在客户端运行,去请求服务器端的文件。发现有时候会出现send命令发出去后,read得到的返回值为-1,errno值为Connection reset by peer的情况。TCP机制中,socket连接的双方都可以调用close()之类的函数退出当前连接,TCP根据改进了的三次握手机制通知另一方也退出当前连接。这个过程可以看做是正常socket连接的一部分。同时,TCP原创 2009-10-16 09:58:00 · 28126 阅读 · 1 评论 -
字节序
1.什么是字节序 字节序(byte order),即字节存储顺序,是处理器在处理多字节数据时,在寄存器和内存中保存字节的顺序。 相关术语: MSB (Most Significant Byte),最高有效字节,是一个数据中权值最大的那一个字节。 LSB (Least Significant Byte),最低有效字节,是一个数据中权值最小的那一个字节。 比如数字1234(一千二百三十四原创 2009-10-19 16:34:00 · 2876 阅读 · 0 评论 -
PNG格式分析
前言我们都知道,在进行J2ME的手机应用程序开发的时候,在图片的使用上,我们可以使用PNG格式的图片(甚至于在有的手机上,我们只可以使用PNG格式的图片),尽管使用图片可以为我们的应用程序增加不少亮点,然而,只支持PNG格式的图片却又限制了我们进一步发挥的可能性(其实,应该说是由于手机平台上的处理能力有限)。 在MIDP2中,或者某些厂商(如NO转载 2010-03-25 09:31:00 · 1229 阅读 · 0 评论