04Windows中的字符类型
1. Windows 中常用的数据类型定义
//WinNt.h中定义
typedef unsigned short wchar_t; //A 16-bit character
typedef char CHAR; //An 8-bit character
typedef wchar_t WCHAR; //A 16-bit character
//Pointer to 8-bit character(s)
typedef CHAR *PCHAR;
typedef CHAR *PSTR;
typedef CONST CHAR *PCSTR
//Pointer to 16-bit character(s)
typedef WCHAR *PWCHAR;
typedef WCHAR *PWSTR;
typedef CONST WHCAR *PCWSTR;
//利用这些类型和宏来写代码,乌龙使用 ANSI 还是 Unicode 字符,它都能通过编译。
#ifdef UNICODE
typedef WCHAR TCHAR, *PTCHAR, PTSTR;
typedef CONST WCHAR *PCTSTR;
#else
typedef CHAR TCHAR, *PTCHAR, PTSTR;
typedef CONST CHAR *PCTSTR;
#endif
2. 为何要用 Unicode 进行开发
- Unicode 有利于应用程序的本地化。
- 使用 Unicode,只需发布一个二进制(.exe 或 DLL)文件,即可支持所有语言。
- Unicode 提升了应用程序的效率,因此代码执行速度更快,占用内存更少。Windows 内部的一切工作都是使用 Unicode 字符和 Unicode 字符串来进行的。所以,假如我们坚持传入 ANSI 字符或字符串,Windows 就会被迫分配内存,并将 ANSI 字符或字符串转换为等价的 Unicode 形式。
- 使用 Unicode,应用程序能够轻松调用所有尚未弃用(nondeprecated)的 Windows 函数,因为一些 Windows 函数提供的版本只处理 Unicode 字符和字符串。
- 使用 Unicode,应用程序的的代码很容易与 COM 集成(后者要求使用 Unicode 字符和 Unicode 字符串)
- 使用 Unicode,应用程序的的代码很容易与 .NET Framework 集成(后者要求使用 Unicode 字符和 Unicode 字符串)。
- 使用 Unicode,能保证应用程序的代码能够轻松操纵我们自己的资源(其中的字符串总是 Unicode 形式的)。
04Windows中的字符类型的更多相关文章
- C++中宽字符类型(wchar_t)的编码
转载自: http://www.ituring.com.cn/article/111027 问题的起因是和一个朋友讨论不同编码的转换问题,说到了wchar_t的类型,朋友的看法是,wchar_t的编码 ...
- pandas将字段中的字符类型转化为时间类型,并设置为索引
假设目前已经引入了 pandas,同时也拥有 pandas 的 DataFrame 类型数据. import pandas as pd 数据集如下 df.head(3) date open close ...
- Python学习笔记 (2.2)Python中的字符编码问题及标准数据类型之String(字符串)
Python3中的String类型 首先,Python中没有字符类型,只有字符串类型.单个字符按照长度为1的字符串处理,这对于曾是OIER的我来说有点不适应啊. 字符串的表示方法 最常用的就是用一对双 ...
- python中是否有单独的字符类型,通过下标的方式表示字符串中的字符
说明: 在python中,没有单独的字符类型,一个字符呢就是一个大小为1的字符串. 并且可以通过下标的方式,表示字符串中的字符. 操作过程: 1.通过[ ]的方式表示字符串中的第几个字符 >&g ...
- js中四舍五入保留两位效数,js中将Number转换成字符类型
今天在写代码的时候遇到了点问题,特意记下,以免忘记!四舍五入方法: // num为传入的值,n为保留的小数位 function fomatFloat(num,n){ var f = parseFloa ...
- go中字符类型的使用小结
示例 // 字符类型的用法 package main import ( "fmt" "unsafe" ) func main() { // 未指定类型并赋值字符 ...
- 5.6 JS中基本包装类型
为了便于操作基本类型值,ES还提供了三种特殊的引用类型,即(基本包装类型):Number,String,Boolean.这三种类型与前面介绍的引用类型相似,但同时也拥有基本数据类型的一些特性. 平时经 ...
- 在文件夹中 的指定类型文件中 查找字符串(CodeBlocks+GCC编译,控制台程序,仅能在Windows上运行)
说明: 程序使用 io.h 中的 _findfirst 和 _findnext 函数遍历文件夹,故而程序只能在 Windows 下使用. 程序遍历当前文件夹,对其中的文件夹执行递归遍历.同时检查遍历到 ...
- MySql中的字符数据类型
MySql中的varchar类型 1.varchar类型的变化 MySQL数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255根据不同版本数据库 ...
随机推荐
- Django-Rest-Framework的序列化之serializers 序列化组件
Django-Rest-Framework的序列化之serializers 序列化组件 restful framework 正常的序列化 from django.http import HttpRes ...
- Codeforces Round #562 (Div. 2) A.Circle Metro
链接:https://codeforces.com/contest/1169/problem/A 题意: The circle line of the Roflanpolis subway has n ...
- CodeForces - 508B-Anton and currency you all know
Berland, 2016. The exchange rate of currency you all know against the burle has increased so much th ...
- java课后思考题(六)
1.使用Files. walkFileTree()找出指定文件夹下所有扩展名为.txt和.java的文件. import java.io.IOException;import java.nio.fil ...
- 使用Robot类模拟鼠标、键盘事件
Robot类用于模拟鼠标.键盘事件,生成本机系统输入事件.Robot 的主要用于自动化.自运行的程序和其他需要自动控制鼠标和键盘的程序 相当于实际操作的效果,不仅仅只是生成对应的鼠标.键盘事件.比如R ...
- 【转】HEIF图片存储格式探秘
HEIF图片存储格式探秘 2017年12月11日 18:30:43 阅读数:891 HEIF,High Efficiency Image File Format,即高效率图档格式,是由动态图像专家组( ...
- dubbo服务降级(1)
1. 在 dubbo 管理控制台配置服务降级 上图的配置含义是:consumer 调用 com.zhang.HelloService 的方法时,直接返回 null,不发起远程调用. 实际操作是:在 z ...
- mongodb的投影
mongodb 投影意思是只选择必要的数据而不是选择一个文件的数据的整个.如果一个文档有5个字段,需要显示只有3个,然后选择其中只有3个字段. find() 方法 MongoDB 的find()方法, ...
- [20190614]webpack+vue学习记录
本文记录一些学习webpack+vue相关的知识点,方便以后查阅,添加或修改 1. 初始化vue项目的代码结构 build--项目依赖包配置信息 config--项目配置文件 dev.env.js-- ...
- linux系统基本结构-《循序渐进linux》
1.linux控制台 linux系统由桌面控制台(X -Window视窗)和字符控制台组成.字符控制台是linux的核心,默认linux下有6个字符控制台. 字符控制台--〉X-Window下:ctr ...