随笔分类 -  C

深度理解按位异或运算符
摘要:参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:         0^0=0, 1^0=1, 0^1=1, 1^1=0  例如:     10100001^00010001=10110000 0^0=0,0^1=1 0异或任何数=任何数 1^0=1,1^1=01异或任何数-任何数取反 任何数异或自己=把自己置0  (1)按位异或可以用来使某些特定的位翻转,如对数10100001的... 阅读全文

posted @ 2010-06-16 15:03 highmayor 阅读(371) 评论(0) 推荐(0) 编辑

一个容易忽略的陷阱:修改字符串常量的值
摘要:见下面例子: int main(){ char *p = "1234"; p[2] = '1'; return 0;}编译时通过,但执行时发生coredump, 原因是试图修改字符串常量的值: "1234"为一字符串常量,编译器有可能把它放在内存的只读区域,而p[2] = '1'试图对此字符串常量作修改,则会产生错误(当然啦,编译器也有不一定会把它放到只读区域,但这种情况应当避免)。。另... 阅读全文

posted @ 2010-06-16 14:46 highmayor 阅读(380) 评论(0) 推荐(0) 编辑

算法的时间复杂度(计算实例)
摘要:定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数 T(n)称为这一算法的“时间复杂性”。当输入量n逐渐加大时,时间复杂性的极限情形称为算法的“渐近时间复杂性”。我们常用大O表示法表示时间复杂性,注意它是某一个算法的时间复杂性。大O表示只是说有上界,由定义如果f(n)=O(n),那显然成立f(n)=O(n^2)... 阅读全文

posted @ 2010-04-03 21:42 highmayor 阅读(498) 评论(0) 推荐(0) 编辑

函数编程(FP)
摘要:面对越来越复杂的软体开发需求,我们需要更高的抽象层。过去二十多年,我们将物件导向(Object-Oriented Programming,OOP)和元件(Components)的观念注入大多数的主流imperative编程语言(例如BASIC丶C丶 Pascal),采用这些技术可以降低软体开发的复杂度(Complexity),增加再用性(Reusability),於是我们着实过了好一阵子安稳的生活... 阅读全文

posted @ 2009-02-13 15:13 highmayor 阅读(1205) 评论(1) 推荐(0) 编辑

PC-Lint安装说明
摘要:PC-Lint是一个历史悠久,功能异常强劲的静态代码检测工具。它的使用历史可以追溯到计算机编程的远古时代(30多年以前)。经过这么多年的发展,它不但能够监测出许多语法逻辑上的隐患,而且也能够有效地帮你提出许多程序在空间利用、运行效率上的改进点,在很多专业级的软件公司,比如Microsoft,PC-Lint检查无错误无警告是代码首先要过的第一关,我个人觉得,对于小公司和个人开发而言,PC-Lint也... 阅读全文

posted @ 2008-04-23 16:38 highmayor 阅读(3310) 评论(0) 推荐(0) 编辑

网讯面试题
摘要:一、COM方面 1.接口的本质是什么? 2.COM有哪几大类接口? 3. 4. 二、网络方面 1.OSI模型? 2.SOCKET通信过程? 3.TCP和UDP的区别,哪个更稳定? 4.TCP的连接过程? 5.FTP和TFTP传输文件哪个快? 6.让你设计一个应用层协议,你怎么设计,从那些方面着手? 7.如何区别服务器程序崩溃和机器崩溃? 三、设计模式方面 1.设计模式有哪几大类? 2.举例说明... 阅读全文

posted @ 2007-09-11 11:57 highmayor 阅读(504) 评论(0) 推荐(0) 编辑

C库函数memcpy的代码
摘要:一、内存拷贝函数 void memcpy(void* pvTo, void* pvFrom, size_t size) { void* pbTo = (byte*)pvTo; void* pbFrom = (byte*)pvFrom; assert(pvTo != NULL && pvFrom != NULL); while(size-->0) *pbTo++ == *pbFrom++; re... 阅读全文

posted @ 2007-09-11 11:51 highmayor 阅读(1148) 评论(0) 推荐(0) 编辑

超级求平方根的方法
摘要:float SquareRootFloat(float number) { long i; float x, y; const float f = 1.5F; x = number * 0.5F; y = number; i = * (long *) &y; i = 0x5f3759df - (i >> 1);//0x5f375a86 is more better than 0x... 阅读全文

posted @ 2007-09-11 11:49 highmayor 阅读(516) 评论(0) 推荐(0) 编辑

导航