文章分类 -  C++

【数据类型】基本数据类型
摘要:F 16进制数,一个16进制数只能表示 0~FFF 一个字节,两个就可以表示0~255或-127~126了 char 具体是表示0~255还是-127~126,在不同平台解释不同,所以最好显式使用 signed char 微软平台下,short占16位,int和long占32位,64位整形在VC6里是__int64;VS里提供了typedef__int64 LONGLONG ——C标准类型,没有规定数位,随着机器的发展可能会改变。 轻易不要使用unsigned int 类型做函数参数,调用者未注意传入负数会自动转为大整数,不易察觉。 fun(int i) {if(0<i<20) t 阅读全文

posted @ 2011-03-29 09:24 cvbnm 阅读(353) 评论(0) 推荐(0)

CRC校验码
摘要:乘法: x*y ,for(;i<y; i++){x += x; } //重复累加除法: x/y ,for(i=0;;){x -= y; i++;}//除数重复减被除数的次数网络通信会有传输错误:随机噪声(热)、脉冲噪声(闪电)等。需要手段发现或纠正错码。差错控制方式:检错重发ARQ;前向纠错FEC;反馈校验;混合纠错HEC。差错控制码:线性分组码,非线性分组码,非分组码,检错码,纠错码。 阅读全文

posted @ 2011-03-04 10:17 cvbnm 阅读(205) 评论(0) 推荐(0)

C/C++数组名与指针区别深层探索
摘要:1. 引言 指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C 语言的教学过程中也错误得给学生讲解:“数组名就是指针”。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着C/C++项目的开发,而身边还一直充满这样的程序员,他们保留着“数组名就是指针”的误解。 想必这种误解的根源在于国内某著名的C 程序设计教程。如果这篇文章能够纠正许多中国程序员对数组名和指针的误解,笔者就不甚欣慰了。借此文,笔者站在无数对知识如饥似渴的中国程序员之中,深深寄希望于国内的计算机图书编写者们,能以“ 阅读全文

posted @ 2011-02-22 17:43 cvbnm 阅读(270) 评论(0) 推荐(0)

C/C++程序员应聘常见面试题剖析
摘要:1.引言本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy 函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy 函数吗?我们都觉得自己能,可是我们写出的strcpy 很可能只能拿到10 分中的2 分。读者可从本文看到strcpy函数从2 分到10 分解答的例子,看看自己属于什么样的层次。此外,还有一些面试题考查面试者敏捷的思维能力。分析这些面试题,本身包含很强的趣味性; 阅读全文

posted @ 2011-02-22 17:41 cvbnm 阅读(898) 评论(0) 推荐(0)

从面试题中学习C语言和嵌入式C语言
摘要:1 . 用预处理指令#define 声明一个常数,用以表明1 年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL• 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值。• 意识到这个表达式将使一个16 位机的整型数溢出——因此要用到长整型符号L,告诉编译器这个常数是长整型数。• 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。2 . 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。 #defi 阅读全文

posted @ 2011-02-22 17:35 cvbnm 阅读(573) 评论(0) 推荐(0)

在EVC上创建控制台程序
摘要:1 创建WCE Application工程,可以建空工程也可以用现成的。2 入口C++文件要有"windows.h",不可能纯C++了,毕竟这是EVC。3 入口函数int WINAPI XXXfun(---);手动设置入口点 Project --> Settings --> Link tab --> Category = Output-->Entry-point symbol: WinMainCRTStartup ==>XXXfun参数随意,但在EVC里使用CRT,可能还是 _tmain(int argc, char ** argv) 和 WinMain(4参数) 阅读全文

posted @ 2011-02-21 09:03 cvbnm 阅读(246) 评论(0) 推荐(0)

Windows系统下如何使用makefile
摘要:makefile在windows之外的系统中广泛使用,大多数程序员依赖于vs的IDE; 掌握使用makefile,对于自动化构建很有用vs使用nmake.exe作为构建的工具,有别于linux的makenmake.exe在vs的安装目录下,vs2005的默认目录是:C:\Program Files\Microsoft Visual Studio 8\VC\bin 或者 C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin (通常两个目录下文件为同一个)vs2003的默认目录是:C:\Program Files\Microsoft Vis 阅读全文

posted @ 2011-02-15 10:10 cvbnm 阅读(48529) 评论(0) 推荐(2)

由压缩一个臃肿的STL Vector操作引发的思考
摘要:压缩很多空余空间的vec一条语句搞定: std::vectorint (vec).swap(vec); //临时变量在哪里临时变量  它们是被神所遗弃的孩子,没有人见过它们,更没有人知道它们的名字.它们命中注定徘徊于命运边缘高耸的悬崖和幽深的深渊之间,  用自己短暂的生命抚平了生与死之间的缝隙.譬如朝露,却与阳光无缘.是该为它们立一座丰碑的时候了,墓铭志上写着:我来了,我走了,我快乐过.  许多人对临时变量的理解仅仅限于:  string temp;  其实,从C++的观点来看,这根本就不是临时变量,而是局部变量.  C++的临时变量是编译器在需要的时候自动生成的临时性变量,它们并不在代码 阅读全文

posted @ 2011-01-30 10:08 cvbnm 阅读(495) 评论(0) 推荐(0)

浅谈C中的malloc和free
摘要:在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助! 如果不扯得太远的话(比如说操作系统中虚拟内存和物理内存如何运做如何管理之类的知识等),我感觉这篇文章应该是比较全面地谈了一下malloc()和free().这篇文章由浅入深(不见得有多深)分三个部分介绍主要内容。 阅读全文

posted @ 2011-01-30 10:06 cvbnm 阅读(196) 评论(0) 推荐(0)

使用编程方法对C++类施加的限制
摘要:explicit 构造(单参数); //防止隐式转换,A=a; 隐式使用 A=A(a)编译通过此语句。私有化拷贝构造和赋值函数定义 //防止实例复制,比如文件句柄类,禁止被两个实例共享 A(const A&amp;);A&amp; operator=(const A&amp;); 阅读全文

posted @ 2011-01-30 10:05 cvbnm 阅读(160) 评论(0) 推荐(0)

【C++跨平台系列】类型和声明
摘要:4.3 字符类型 “由8bits表示的256个值可以解释为0~255,或者解释为-128~127,不幸的是,普通char类型选择那种解释是由具体实现(实际运行平台)决定的” 所以,不要做过多的假设。如果你必须这样做,请使用显式的signed char或者unsigned char来声明变量。4.4整数类型“unsigned整数类型对于存储二进制bit数组的使用方式非常理想。但是,如果用unsigned而不用int仅仅因为想多一个bit来表示正整数,就不是什么好主意。” 这句话轻描淡写的一笔带过,但是含义颇深。它再一次提醒我们,不要指望一种并没有看起来那么可靠的措施,来为我们提供安全保险。举例来 阅读全文

posted @ 2011-01-30 10:03 cvbnm 阅读(888) 评论(0) 推荐(1)

【C++跨平台系列】解决STL的max()与numeric_limits::max()和VC6 min/max 宏冲突问题
摘要:多年以前,Microsoft 幹了一件比 #define N 3 還要蠢的蠢事,那就是在 <windows.h> 放入了 min/max 這兩個宏命令(macros)。 #define max(a,b) (((a) > (b)) ? (a) : (b))因此,我們沒辦法好好地使用 C++ Standard 的 min/max 這兩個 algorithms,也沒有辦法好好地使用 numeric_limits<>。前者 Microsoft 用了另外兩個宏命令,_MIN 與 _MAX 來補救,但考量到跨平台程式設計,這兩個 macros 有跟沒有一樣。 #define 阅读全文

posted @ 2011-01-30 10:02 cvbnm 阅读(3801) 评论(0) 推荐(0)

引用计数
摘要:引用计数是这样一个技巧,它允许多个有相同值的对象共享这个值的实现。这个技巧有两个常用动机。第一个是简化跟踪堆中的对象的过程。一旦一个对象通过调用new被分配出来,最要紧的就是记录谁拥有这个对象,因为其所有者--并且只有其所有者--负责对这个对象调用delete。但是,所有权可以被从一个对象传递到另外一个对象(例如通过传递指针型参数),所以跟踪一个对象的所有权是很困难的。象auto_ptr这样的类可以帮助我们,但经验显示大部分程序还不能正确地得到这样的类。引用计数可以免除跟踪对象所有权的担子,因为当使用引用计数后,对象自己拥有自己。当没人再使用它时,它自己自动销毁自己。因此,引用计数是个简单的垃 阅读全文

posted @ 2011-01-30 10:01 cvbnm 阅读(4498) 评论(0) 推荐(4)

导航