【转】char,wchar_t,WCHAR,TCHAR,ACHAR的区别
char:ANSI字符串,可用字符串处理函数strcat( ),strcpy( ), strlen(
)等以str打头的函数。
wchar_t :wchar_t是Unicode字符的数据类型,它的实际定义为:typedef
unsigned short wchar_t;
wchar_t 可用字符串处理函数:wcscat(),wcscpy(),wcslen()等以wcs打头
的函数。
WCHAR:在头文件中有这样的定义:typedef wchar_t WCHAR; 所以WCHAR实
际就是wchar_t。
在C语言里面提供了 _UNICODE宏(有下划线),在Windows里面提供了
UNICODE宏(无下划线),只要定了_UNICODE宏和UNICODE宏,系统就会自
动切换到UNICODE版本,否则,系统按照ANSI的方式进行编译和运行。只定
义了宏并不能实现自动的转换,他还需要一系列的字符定义支持。
TCHAR:
如果定义了UNICODE宏则TCHAR被定义为wchar_t。typedef wchar_t TCHAR;
否则TCHAR被定义为char typedef char TCHAR;
ACHAR:此类型是AUTODESK公司在adachar.h 头文件中定义的。
当定义了AD_UNICODE(AUTODESK公司使用UNICODE宏)时为wchar_t。
【转】char,wchar_t,WCHAR,TCHAR,ACHAR的区别相关推荐
- 关于char, wchar_t, TCHAR, _T,L,TEXT,_TEXT,LPSTR,LPCSTR,PWSTR,PCWSTR,LPTSTR,LPCTSTR的区别
#ifdef UNICODE typedef wchar_t TCHAR; #else typedef unsigned char TCHAR; #endif typedef unsigned cha ...
- VC++中的char,wchar_t,TCHAR(转载)
VC++中的char,wchar_t,TCHAR 大家一起做一个项目,经常发现有的人爱用strcpy等标准ANSI函数,有的人爱用_tXXXX函数,这个问题曾经搞的很混乱.为了统一,有必要把来龙去脉搞 ...
- char 和 wchar 有啥区别?
char 和 wchar 有啥区别? wchar_t是Unicode字符的数据类型,它实际定义在里: typedef unsigned short wchar_t; 不能使用类似strcpy这样的AN ...
- TCHAR char wchar_t PTSTR PCSTR printf() wprintf()——_tprintf()解析
TCHAR char wchar_t PTSTR PCSTR printf() _tprintf() 晕菜了吧? 转来一篇文章为大家解惑... Petzold的Programming Windows的 ...
- 关于Char* ,CString ,WCHAR*之间的转换问题
GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*.我开始也被整得晕头转向,因为窗口编程所用往往是CString,用IO流读文件数据又得到char *.得益 ...
- MFC获取应用程序所在目录--CString(Left、Right、Find、ReverseFind)--Cstring与char或wchar转换
一.CString--Left.Right.Find.ReverseFind CString--Left.Right.Find.ReverseFind CString::Left(intnCount) ...
- c语言wchar转化为char_c、c++ char*和wchar*互相转换
1. 问题描述 编写程序时通常会面对一些不同的编码格式,如Unicode和multibytes.在有关字符串的处理时尤其重要,系统编程时通常会遇到很多这样的问题,例如把wchar*的字符串转换为cha ...
- char[]:strlen和sizeof的区别
C code: // char[]:strlen和sizeof的区别 #include <stdio.h> #include <string.h> int main(int a ...
- char*,wchar_t*,CString和BSTR之间的转换
前言 本文并不尝试列举出所有的转换方法,只列举作者认为方便易用的方法. 1.char*和wchar_t*的相互转换 可以利用中间类_bstr_t(头文件comdef.h)方便的进行相互转换 const ...
- MySQL中char,varchar和text的区别
MySQL中char,varchar和text的区别 java程序中的string类型,在mysql数据表中可以有三种对应的类型:char,varchar和text. char,varchar和tex ...
最新文章
- 电脑有回声_电脑麦克属性调整(用于回声消除)
- python【数据结构与算法】Floyd算法模拟
- UA OPTI512R 傅立叶光学导论22 透镜成像与傅立叶变换
- SAP 权限对象设置及在程序中的应用
- (转载)MultiAnimation
- jemalloc java_从源构建tensorflow遇到错误:规则'@jemalloc//:jemalloc'的C编译失败
- 零基础学习java------day11------常用API
- 【软件质量】软件可维护性
- 老男孩Python高级全栈开发工程师【高清全套完整】
- pythonsqlite加锁_Python SQLite:数据库被锁定
- 计算机内置管理员,Win10无法使用内置管理员账户打开应用怎么解决?
- 基于二极管的温度检测电路
- Strange Fractions(奇怪的分数)-数论
- 实现 ResponseBodyAdvice 定制化JSON 返回字段
- 用 Python 自动生成 Word 文档并在指定位置插入图片
- 2021年电工杯B体详细思路分析
- SDUTOJ 3034 炸学校(dijkstra)
- 我们是“前端offer收割机”
- 感觉这么多年喝的鸡汤都白补了,我想静静!
- Flash, Flex, Air, Flashplayer之间的相互关系是什么
热门文章
- 固定大小采样池中的随机采样证明
- 用Vue-cli3+element+mockjs 实现后台管理权限系统及顶栏三级菜单显示
- 【愣锤笔记】能解决80%场景的Git必会知识点
- FutureTask源码解析(2)——深入理解FutureTask
- Redis高并发1-redis环境搭建
- 斯坦福22岁辍学少年的独角兽野心:准备颠覆硅基无人车激光雷达
- EF架构~为ObjectContext类型加个Find方法
- C/C++程序员面试宝典-2
- Linux服务器性能的重要指标:打开文件数的限制
- Linux系统编程 -- 多线程之基于阻塞队列生产者与消费者模型