- 博客(8)
- 资源 (3)
- 收藏
- 关注
原创 字节对齐(转贴+修改)
现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这
2008-07-29 10:06:00 828
转载 .NET Compact Framework使用P/Invoke服务
.NET Compact Framework使用P/Invoke服务 一、P/Invoke在.NET Compact Framework的支持下,可以方便高效地开发出适合于移动设备的应用程序,而不需要去考虑特定的硬件环境。.NET Compact Framework向开发者屏蔽了硬件底层的细节,使开发者可以集中精力于业务逻辑的解决方案。 作为.NET Framework 的一
2008-07-28 18:18:00 536
翻译 Utilize using and try/finally for Resource Cleanup
Effective C# Item 15: Utilize using and try/finally for Resource Cleanup 当我们使用非托管资源(unmanaged resources)类型时,应当使用IDisposable接口的Dispose()方法来释放资源。在.Net环境中,对非托管资源的回收不是系统的责任,我们必须自己调用Dispose()方法来释放
2008-07-22 10:42:00 685
转载 托管资源和非托管资源
在.net 编程环境中,系统的资源分为托管资源和非托管资源。 对于托管的资源的回收工作,是不需要人工干预回收的,而且你也无法干预他们的回收,所能够做的只是了解.net CLR如何做这些操作。也就是说对于您的应用程序创建的大多数对象,可以依靠 .NET Framework 的垃圾回收器隐式地执行所有必要的内存管理任务。 资源分为两种,托管的内存资源,这是不需要我们操心的,系统已
2008-07-16 15:18:00 6528
转载 C# 装箱和撤箱
把值类型的实例转换为引用类的实例,就称为装箱,其逆过程称为取消装箱。在C#中,这种情况常常在我们未意识的情况下发生的。但是,理解发生了什么是很重要的,所以先介绍一下这两个过程:1, 把值类型转换为对象考虑下面代码ArrayList myArrayList = new ArrayList(); myArrayList.Add(new Money(2500.0)); A
2008-07-07 12:36:00 804
原创 序列化和反序列化
序列化就是把一个对象转换为可以保存的形式,以利于保存和传输。 反序列化就是把这种可保存的形式恢复为内存中的对象。 .net提供了以下两种序列化的方法 1. 二进制序列化 可以保留一个对象的所有的数据,对于应用程序不同调用之间保留对象状态很有用。 二进制序列化 使用BinaryFormatter 例: GrandPa me = new
2008-07-07 12:31:00 648
原创 C/C++中内存分配方式
内存分配方式细分来有五种: (1) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (2) 从堆上分配,亦称动态内存分配。程序在运行的时候用 malloc 或 new 申请任意多少的内存,程序员自己负责在何时用 free 或 delete 释放内存。动态内
2008-06-25 10:36:00 805
原创 重定向与管道
一. 几个特殊的宏 putchar(char ch); int getchar(); putc(char ch, FILE * fp); int getc(FILE * fp) 以上从从用户角度看都是函数,但实质是宏。都是从库函数fputc(char ch, FILE * fp)以及 fgetc(FILE * fp)定义出来的宏。不同的是,有一个标准输入stdin(
2008-06-23 23:08:00 1404
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人