_T()函数底层如何实现的

mirroatl205 2013-08-09 06:46:44
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...全文
96 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
baichi4141 2013-08-12
  • 打赏
  • 举报
回复
宏本质上就是编译前的字符串替换,既不是函数也没有什么底层原理 楼主基础知识严重欠缺
Sandrer 2013-08-10
  • 打赏
  • 举报
回复
#ifdef _UNICODE #define __T(x) L ## x #else #define __T(x) (x) #endif #define _T(x) __T(x) 其实最主要的是“##”这两个符号,它在编译器里面所代表的意思是“连接” 例如: #define TEST(x, y) x ## y 调用: int n = TEST(1, 2); // 输出 12 LPCTSTR psz = TEST(L"hello ", L"world"); // 输出 hello world
woshinia 2013-08-09
  • 打赏
  • 举报
回复
就是一个宏,如果程序环境为UNICODE就是在字符串前面加个L,编译器看到了就将后面的看成是UNICODE编码的,就是个标记而已,就像0x123代表16进制。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧