25、Win32 API 中原子表的使用与操作

Win32 API 中原子表的使用与操作

1. 原子表简介

在 Win32 API 里,应用程序能够把字符串存于原子表这种结构中。一旦程序将字符串存入原子表,就可借助原子来引用该字符串。原子是一个独特的 16 位值,和一个常量字符串值相关联。使用原子引用字符串,类似于用内存句柄引用共享的全局数据块。应用程序可向 Win32 API 传递内存句柄来获取数据块内容的指针,同理,也能使用 Win32 API 获取与原子相关联的字符串的值,这个字符串值被称作原子名。

原子的使用有诸多好处:
- 节省内存 :把多次出现的字符串存于应用程序的原子表,能节省内存,因为字符串值仅存储一次,后续出现的字符串仅占用原子所需的 2 字节内存,而非存储实际字符串副本所需的字节数。
- 提升性能 :在比较字符串时,原子表能加快性能,因为只需比较字符串的 16 位原子,而非比较两个字符串的每个字节。
- 数据交换 :原子在程序间的数据交换中也很重要。所有应用程序共享的全局原子表,可用于在应用程序间交换数据。使用原子在应用程序间交换字符串,是动态数据交换(DDE)的基础之一。同时,原子也常用于在对象链接与嵌入(OLE)对象描述符中存储可变长度的字符串,这会使结构更小、更易交换且大小固定。

2. 原子表的类型

原子表有两种类型:本地原子表和全局原子表。
- 本地原子表 :每个进程都有自己的本地原子表,本地原子的值在定义它的进程中是唯一的。
- 全局原子表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值