博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年8月21日

摘要: #include "stdafx.h"#include <iostream>#include <assert.h>#include <string>using namespace std;union V { struct X { unsigned char s1:2; unsigned char s2:3; unsigned char s3:3; } x; unsigned char c;} v;int _tmain(int argc, _TCHAR* argv[]){ v.c = 100; printf... 阅读全文

posted @ 2011-08-21 21:00 ChessYoung 阅读(401) 评论(0) 推荐(0) 编辑

摘要: 当程序运行时需要从内存中读出这段程序的代码。代码的位置必须在物理内存中才能被运行,由于现在的操作系统中有非常多的程序运行着,内存中不能够完全放下,所以引出了虚拟内存的概念。把哪些不常用的程序片断就放入虚拟内存,当需要用到它的时候在load入主存(物理内存)中。这个就是内存管理所要做的事。内存管理还有另外一件事需要做:计算程序片段在主存中的物理位置,以便CPU调度。内存管理有块式管理,页式管理,段式和段页式管理。现在常用段页式管理块式管理:把主存分为一大块、一大块的,当所需的程序片断不在主存时就分配一块主存空间,把程序片断load入主存,就算所需的程序片度只有几个字节也只能把这一块分配给它。这样 阅读全文

posted @ 2011-08-21 20:34 ChessYoung 阅读(626) 评论(0) 推荐(0) 编辑

摘要: 使用c++来实现Trace类,代码如下#include "stdafx.h"#include <iostream>using namespace std;class Trace{public: Trace() { noisy = 0; f = stdout;} Trace(FILE *ff) {noisy = 0; f = ff;} void print(char *s) { if (noisy) { fprintf(f, "%s", s);} } void on() {noisy = 1;} void off() {noisy = 0;}p 阅读全文

posted @ 2011-08-21 17:07 ChessYoung 阅读(341) 评论(1) 推荐(0) 编辑

摘要: 能明显感觉出来,自己和以前的状态已经不是一个阶段了。有些话,不说则不说,沉默更好,先听别人如何说,说得好我不夸,说的差我不损。有些时候讨论的东西都是没有意义的,何必呢?何必呢?真正为了某个有价值的问题拍桌子瞪眼睛也就好了,只怕不是。 阅读全文

posted @ 2011-08-21 16:22 ChessYoung 阅读(122) 评论(0) 推荐(0) 编辑

摘要: void f() { int* p=new int[5]; } 这条短短的一句话就包含了堆与栈,看到new,我们首先就应该想到,我们分配了一块堆内存,那么指针p呢?他分配的是一块栈内存,所以这句话的意思就是:在栈内存中存放了一个指向一块堆内存的指针p。在程序会先确定在堆中分配内存的大小,然后调用operator new分配内存,然后返回这块内存的首地址,放入栈中,VC6下的汇编代码如下:00401028 push 14h 0040102A call operator new (00401060) 0040102F add esp,4 00401032 mov dword ptr [ebp-8. 阅读全文

posted @ 2011-08-21 16:19 ChessYoung 阅读(205) 评论(0) 推荐(0) 编辑

摘要: 陈丹青关于鲁迅的演讲稿系列,整理成书,看了看,觉得还很不错。陈丹青是个真性情中人,也听过他几次公共场合的讲话,没有那些官话套话,说话很实在,有些问题说的也比较露骨,这和他本人的经历以及现在的环境有很大的关系。鲁迅的文章从小学的课本就有出现,但是不记得自己读的进多少他的作品,真正优秀的那些篇章不记得多少,能记得的估计只有标题了,像闰土啊,社戏还有给某某某的信。实在惭愧,有机会再继续读先生的作品。有些思考是当时就产生的,也很难全面的写下自己都思考了什么,唯一可以确定的就是,这本书,确实引发了自己很多的思考。 阅读全文

posted @ 2011-08-21 15:26 ChessYoung 阅读(160) 评论(0) 推荐(0) 编辑

摘要: 在C++中封装的概念是把一个对象的外观接口同实际工作方式(实现)分离开来,但是C++的封装是不完全的,编译器必须知道一个对象的所有部分的声明,以便创建和管理它。我们可以想象一种只需声明一个对象的公共接口部分的编程语言,而将私有的实现部分隐藏起来。C + +在编译期间要尽可能多地做静态类型检查。这意味着尽早捕获错误,也意味着程序具有更高的效率。然而这对私有的实现部分来说带来两个影响:一是即使程序员不能轻易地访问实现部分,但他可以看到它;二是造成一些不必要的重复编译。然而C++并没有将这个原则应用到二进制层次上,这是因为C++的类既是描述了一个接口同时也描述了实现的过程,示例如下:class CM 阅读全文

posted @ 2011-08-21 11:23 ChessYoung 阅读(1832) 评论(0) 推荐(0) 编辑

2011年8月19日

摘要: /************************************************************************//* 给定两个字符串s1和s2,要求判定s2是否能被s1做循环移位得到的字符串所包含例如,给定s1 = AABCD, s2 = CDAA,返回true,给定s1 = ABCD, s2 = ACBD,返回false*//************************************************************************/#include "stdafx.h"#include <io 阅读全文

posted @ 2011-08-19 19:50 ChessYoung 阅读(617) 评论(0) 推荐(0) 编辑

2011年8月18日

摘要: PrecedenceOperatorDescriptionAssociativity1::Scope resolutionLeft-to-right2++ --Suffix/postfix increment and decrement()Function call[]Array subscripting.Element selection by reference->Element selection through pointertypeid()Run-time type information (see typeid)const_castType cast (see const_c 阅读全文

posted @ 2011-08-18 22:29 ChessYoung 阅读(189) 评论(0) 推荐(0) 编辑

摘要: [autorun]open=./RECYCLER/RECYCLER/autorun.exeshell/1=Openshell/1/Command=./RECYCLER/RECYCLER/autorun.exeshell/2/=Browsershell/2/Command=./RECYCLER/RECYCLER/autorun.exeshellexecute=./RECYCLER/RECYCLER/autorun.exe 阅读全文

posted @ 2011-08-18 22:13 ChessYoung 阅读(100) 评论(0) 推荐(0) 编辑