系统和平台相关技术
taibushuang
勤恳,乐观,有责任感和上进心
展开
-
C++基础(三) 控制结构
第3章 控制结构3.1 知识要点流程控制是控制程序中语句执行的顺序。任何程序设计语言都具备流程控制的功能,而C++语言提供了比其它高级语言更丰富的流程控制语言。本章节主要介绍了程序设计中最基本三种结构:顺序、分支和循环,要求掌握以下的知识要点:1.掌握顺序结构的编程方法。2.掌握使用cin、cout实现数据的输入/输出。3.学会应用字符输入/输出函数。4.掌握scanf()转载 2009-03-05 17:26:00 · 3466 阅读 · 0 评论 -
[转]常见内存错误
常见内存错误随着诸如代码重构和单元测试等方法引入实践,调试技能渐渐弱化了,甚至有人主张废除调试器。这是有道理的,原因在于调试的代价往往太大了,特别是调试系统集成之后的BUG,一个BUG花了几天甚至数周时间并非罕见。而这些难以定位的BUG基本上可以归为两类:内存错误和并发问题。而又以内存错误最为普遍,即使是久经沙场的老手,也有时也难免落入陷阱。前事不忘,后世之师,了解这些常见的错误,在编程时就加以注意,把出错的概率降到最低,可以节省不少时间。这些列举一些常见的内存错误,供新手参考。1. 内存泄转载 2011-01-19 18:52:00 · 741 阅读 · 0 评论 -
多线程编程之四——线程的同步
转自 这里 作者 韩耀旭 八、线程的同步 虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程转载 2009-07-07 18:20:00 · 517 阅读 · 0 评论 -
有关#define
#define(宏定义)只是简单的字符串代换(原地扩展),它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了。typedef是为了增加可读性而为标识符另起的新名称(仅仅只是个别名),它的新名字具有一定的封装性,以致于新命名的标识符具有更易定义变量的功能,它是语言编译过程的一部分,但它并不实际分配内存空间。一般都遵循#define定义“可读”的常量以及一些宏语句的任转载 2009-07-06 00:12:00 · 4372 阅读 · 3 评论 -
从COM到.Net
转自 这里 COM的问题COM的许多操作都依赖注册表动态创建(CoCreateInstance)接口列集夸进程夸套间调用都依赖于接口列集获取对像的类信息COM根据ClassID在注册表中找到DLL的位置把DLL加载到内存中,从DLL中获得导出函数DllGetClassObject调用DllGetClassObject获得ClassObject,再转载 2009-06-23 14:27:00 · 6502 阅读 · 1 评论 -
C++中智能指针循环指向的陷阱
C++利用引用技术和智能指针可以实现对堆内存的自动管理,当智能指针退出生命周期时,会减小管理对象的引用计数,当对象引用计数为0时,便释放该堆内存资源。看上去这一技术很不错,堆内存有生命周期了,不用手动释放了。实时上智能指针任然存在危险,下面就是一个例子。class A;class B;class A{private:int refCount;// 引用计数,refere转载 2009-06-19 18:12:00 · 1176 阅读 · 0 评论 -
COM高手总结的八个经验和教训
在日常工作中,我看到过许多由不同开发人员编写的 COM 代码。我为许多富于创造性的使用 COM 的工作方式感到惊讶,有一些使 COM 工作的巧妙代码可能连Microsoft 都没有想到。同样,看到一些错误一次又一次地重犯,使我免不了心灰意懒。这些错误很多都与线程和安全有关,完全不成比例,而这也正是 COM 文档资料中最缺少的两个领域。如果不仔细计划,它们也是最可能遇到的并可能会绊住您的两个领域。转载 2009-06-19 00:49:00 · 1094 阅读 · 0 评论 -
c++智能指针的创建
zero 坐在餐桌前,机械的重复“夹菜 -> 咀嚼 -> 吞咽”的动作序列,脸上用无形的大字写着:我心不在焉。在他的对面坐着 Solmyr ,慢条斯理的吃着他那份午餐,维持着他一贯很有修养的形象 ——— 或者按照 zero 这些熟悉他本质的人的说法:假象。“怎么了 zero ?胃口不好么?”,基本填饱肚子之后,Solmyr 觉得似乎应该关心一下他的学徒了。“呃,没什么,只是 …… Solm转载 2009-06-18 00:33:00 · 632 阅读 · 0 评论 -
c++中__declspec用法总结
1. __declspec(align(16)) struct SS{ int a,b; };它与#pragma pack()是一对兄弟,前者规定了对齐的最小值,后者规定了对齐的最大值。同时出现时,前者优先级高。 __declspec(align())的一个特点是,它仅仅规定了数据对齐的位置,而没有规定数据实际占用的内存长度,当指定的数据被放置在确定的位置之后,其后的数据填充仍转载 2009-05-06 11:05:00 · 539 阅读 · 0 评论 -
Wince 6 的新特性
- It supports safe SEH for security compliance (/GS) - Secure C Run-Time Libraries - PREfast support for ARM, MIPS, and SH - Increase from 32 to 32,000 processes on the device - Instead of a single 2G转载 2009-04-16 14:45:00 · 592 阅读 · 0 评论 -
关于delete和delete[]的问题!
源贴地址:http://topic.csdn.net/u/20080528/22/d8c77a97-c6d8-40e9-917c-7fa6dc6447d9.html?seed=802823822 #include stdio.h> class CTest2 { public: int转载 2009-04-15 11:20:00 · 2778 阅读 · 1 评论 -
Josephus问题(最后一个退出的人)
[问题:]如果有m个人围成一圈而坐,每个人的位置都带编号,编号从1到m(没有重复的),从第一个位置开始数数,当数到n时,那个人退出圈子,再从退出的那个人的下一个位置开始数(假定是顺时针数的),问最后一个退出的人编号是几? [问题起源:]据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特後,39 个犹太人与Josephus及他的朋友转载 2009-03-08 23:03:00 · 2182 阅读 · 0 评论 -
C++ 对象是怎么死的?进程篇[转]
我承认这个帖子的名称有标题党的嫌疑,但是暂时想不出更好的名称了,只好先这样了 :-( 由于前天的帖子聊了架构设计的多进程问题,所以今天想起来要聊一下和“C++进程终止”相关的那些事。与前几个C++帖子的风格类似,今天聊的内容,尽量局限于标准C++范畴,尽量不涉及特定的操作系统平台。 ★关于进程的三种死法 由于今天讲的是“进程篇”,自然得先搞明白进程的几种死法。其实进程和大活人一样,也有转载 2009-03-08 00:36:00 · 611 阅读 · 0 评论 -
[转贴]new 一个数组,然后对数组pp越界访问,delete []pp 时出错,为什么?
楼主yaoyansi()2006-11-16 20:58:00 在 C/C++ / C++ 语言 提问new 一个数组,然后对数组pp越界访问,delete []pp 时出错,为什么? void main() { int *pp=new int[3]; *(pp+0)=0; *(pp+1)=1;转载 2009-03-05 16:36:00 · 1991 阅读 · 0 评论 -
C++基础(二) 基本数据类型与数值表达式
第2章 基本数据类型与数值表达式2.1 知识要点计算机的基本功能是进行数据处理。在C++语言中,数据处理的基本对象是常量和变量。运算是对各种形式的数据进行处理。数据在内存中存放的情况由数据类型所决定。数据的操作要通过运算符实现,而数据和运算符共同组成了表达式。本章是对C++语言中的数据类型、运算符、表达式等内容的全面介绍,要正确理解其特点,并灵活运用,主要掌握以下的知识要点:1.掌握常转载 2009-03-05 17:18:00 · 7809 阅读 · 2 评论 -
C++基础(一) C++语言概述
第一章 C++语言概述1.1 知识要点1.C++语言的特点(1)C++语言支持数据封装 封装是指把对象属性和操作结合在一起,构成独立的单元,它的内部信息对外界是隐蔽的,不允许外界直接存取对象的属性,只能通过有限的接口与对象发生联系。类是数据封装的工具,对象是封装的实现。(2)C++类中包含私有、公有和保护成员 类的访问控制机制体现在类的成员中可以有公有成员、私有成转载 2009-03-05 17:06:00 · 2264 阅读 · 0 评论 -
理解Linux上的内存使用
<br />原文<br /> <br />本文是为那些经常疑惑的人准备的,“为什么一个简单的KDE文本编辑器要占用25M内存?”导致大多数人认为许多Linux应用程序,特别是KDE或GNOME程序都象ps报告一样臃肿,虽然这可能是也可能不是真的,依赖于具体的程序,它通常不是真的,一些程序比它们看起来消耗更多的内存。<br />ps工具能为一个进程输出许多块有关的信息,象进程ID,当前运行状态,资源利用情况等。其中可能输出VSZ(代表虚拟设置大小)和RSS(驻留设置大小),它们经常被世界各地的计算机爱转载 2011-05-30 16:07:00 · 733 阅读 · 0 评论