char* wchat_t*互转 及 A2T, T2A宏及其实现原理

char :单字节变量类型,表示ASCII码。

wchar_t :宽字节变量类型,用于表示Unicode字符。在定义为:typedef unsigned short wchar_t。

TCHAR: VS下的中间类型。在“使用Unicode字符集”下TCHAR定义为wchar_t,在字符集 “未设置” 条件下TCHAR定义为char。

A2T,及T2A是两个非常有用的宏,可以用于实现char*和wchar_t*字符串之间的转换。宏的实现也将会在测试代码中给出,不感兴趣的直接跳过。费话不多说,直接上测试代码,参考代码注释。

 

 

/ demo1.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"#include 
#include 
using namespace std;
#include 
#include void test_L_macro()
{ char astr[] = "hello";cout<<"sizeof(astr):"<2147483647/2) ? 0 : AtlW2AHelper((LPSTR) _alloca(_convert*sizeof(WCHAR)), _lpw, _convert*sizeof(WCHAR), _acp))));//p.s. AtlW2AHelper调用了函数WideCharToMultiByte//_alloca函数用于在栈上分配内存,参考:http://msdn.microsoft.com/en-us/library/wb1s57t5.aspxcout<<"cout\<\

 

P.S.

 

test_A2T_ 是 test_A2T的宏替换实现;test_T2A_ 是 test_T2A的宏替换实现;

 

转载于:https://www.cnblogs.com/right0712/p/3926319.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部