07 2011 档案

摘要:源码下载地点:http://www.kohala.com/start/unpv22e/unpv22e.html按照README中的操作,先configure,然后进入lib目录下make报错gcc -g -O2 -D_REENTRANT -Wall -D_POSIX_PTHREAD_SEMANTICS -c -o daemon_inetd.o daemon_inetd.cIn file included from /usr/include/netinet/in.h:24, from /usr/include/rpc/types.h:91, from /usr/include/rpc/rpc.h 阅读全文
posted @ 2011-07-28 14:00 westfly 阅读(1338) 评论(0) 推荐(0)
摘要:单例(Singleton)模式是所有模式里面最好理解,也是最容掌握的一种模式。一、功能 保证一个类仅有一个实例。 二、结构图三、优缺点 Singleton模式是做为"全局变量"的替代品出现的。所以它具有全局变量的特点:全局可见、贯穿应用程序的整个生命期,它也具有全局变量不具备的性质:同类型的对象实例只可能有一个。四、实现class Singleton{ public: static Singleton* Instance() ; protected: Singleton() {}//无法调用实例,只能指针化 private: static Singleton *instan 阅读全文
posted @ 2011-07-21 20:46 westfly 阅读(241) 评论(0) 推荐(0)
摘要:众所周知,程序为了提高访问效率,编译器在编译的时候,进行字节对齐。程序员也可以字节指定对齐方式。Win32下的为progma指令,具体来说#pragma pack(push) //保存原对齐状态#pragma pack(4)//设定为4字节对齐struct test{ int a;};#pragma pack(pop)//恢复对齐状态在linux下,gcc是默认的编译器。g++ 支持progma指令,gcc也支持GNU扩展__attribute__指令参考《__attribute__》,对于字节对齐的举例为struct test{ short b[3];} __attribute__ ((al 阅读全文
posted @ 2011-07-06 22:14 westfly 阅读(345) 评论(0) 推荐(0)
摘要:编程之美关于求一个整数二进制数一的个数后面的一道思考题。1.A和B两个数,将A变成B,所需要改变的数字个数(二进制数)。异或求出异或值二进制包含的1的个数。 #include <stdio.h> int func(int A, int B) { int M= A ^ B; int num=0; printf("%d\n",M); while(M!=0) { M &= (M-1); num++; } return num; } int main() { int A, B; A=0x10; B=0x11; printf("%d\n", f 阅读全文
posted @ 2011-07-05 09:17 westfly 阅读(185) 评论(0) 推荐(0)
摘要:看到BaiDu的笔试题一道。已知一个字串由GBK汉字和ansi编码的数字字母混合组成,编写C语言函数实现从中去掉所有ansi编码的的数字和字母(包括大小写),要求在原字串上返回结果。函数接口为:int filter_ansi(char* gbk_string)。注:汉字的GBK编码范围是 0x8140 - 0xFEFE。其实这题的思想与 在字符串中删除特定的字符 类似,事实上还要简单,因为没有过滤规则(参考博文后一个参数可以看成是过滤规则)。汉字编码常用的有GBK和GB2312,一般用双字表示,为了区分ansi编码,其最高位一般为1。下面写成代码如下#include <stdio.h&g 阅读全文
posted @ 2011-07-01 14:45 westfly 阅读(1555) 评论(0) 推荐(0)
摘要:听讨论的时候,遇到一题是关于++i*++i的——这样的讨论意义不大,却也可以一窥编译器对相关问题的处理。原题如下相关代码说明如下#include <stdio.h>#define POWER(X) X*Xint main(){ int ch = 8; int sum = POWER(ch++); sum = POWER(++ch); return 0;}如果添加printf输出,其第一个sum = 64,第二个sum = 144将上面的进行汇编编译得到。gcc -S test.c程序main的主要汇编代码main: pushl %ebp movl %esp, %ebp subl $ 阅读全文
posted @ 2011-07-01 14:08 westfly 阅读(273) 评论(0) 推荐(0)