摘要:代码抽象与泛类型初探之C语 收藏 此文于2009-10-09被推荐到CSDN首页如何被推荐?1 写在前面的话 对于很多人来说C语言,或许是在学校学习时那一个蓝色屏幕的TC,更有甚者会人有把VC++中所使用的C++语言同C语言混为一谈。在我们学习时常听到这样的说法``C是C++的一个子集'',这个说法从语法层面来看的确是不错的,但是往往很多人却因这句话产生了一个错觉,那就是``C++比C更优秀''。但实际上,C和C++各有其有点和缺陷,不过就我看来,C语言要比C++更``平衡''一些。然而,我些这篇文章的目的也很简单,只是希望各位能从中感受到C的简约与灵活2 编程中数学抽象的应用 在面向对象编程
阅读全文
摘要:1、《C和指针》2、《C专家编程》3、《编程之美--微软技术面试心得》4、《C++程序设计教程》钱能,清华大学出版社5、《高质量C/C++程序设计指南》 林锐6、《你必须知道的495个C语言问题》7、《uc/os II 标准教程》 杨宗德
阅读全文
摘要:问:int a[5]={1,2,3,4,5}; int * p = (int *)(&a+1); printf(“%d”,p[-1]);输出为什么是5,而不是1?&a+1是指向哪个数组元素的地址?答: a的类型为一个数组,内含5个int型的变量(现假设a中首元素地址为100); &a获得指向数组的指针,指针的内容为a的地址(100),&a +...
阅读全文
摘要:(申明:非原创) typedef用法: 为复杂的声明定义一个新的简单的别名。方法是:在原来的声明里逐步用别名替换一部分复杂声明,如此循环,把带变量名的部分留到最后替换,得到的就是原声明的最简化版。举例:1. 原声明:int *(*a[5])(int, char*);变量名为a,直接用一个新别名pFun替换a就可以了: typedef int *(*pFun)(int, char*);原声明的最简化...
阅读全文
摘要:1int findone(unsigned int n){ for(int i = 0; n > 0; n >>=1) { i += (n & 1); } return i;}2.然而上述的算法,时间复杂度是T(m)=m,取决于二进制数的位数m。如果要求在更短时间内求出,应该如何做呢?如果findone函数被反复调用(成千上万次调用),那应该怎么优化呢? 可以以空间换时...
阅读全文
摘要:5分钟搞定内存字节对齐转载:http://blog.csdn.net/hairetz/archive/2009/04/16/4084088.aspx请牢记以下3条原则:(在没有#pragma pack宏的情况下) 1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如in...
阅读全文
摘要:Unicode是什么? 分析Unicode和UTF-8 1. 各地的方言 首先说明一下现在常用的一些编码方案: 1. 在中国,大陆最常用的就是GBK18030编码,除此之外还有GBK,GB2312,这几个编码的关系是这样的。 n 最早制定的汉字编码是GB2312,包括6763个汉字和682个其它符号 n 95年重新修订了编码,命名GBK1.0,共收录了21886个符号。 n 之后又推出...
阅读全文