ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

常用的typedef 定义

2022-07-09 00:33:42  阅读:247  来源: 互联网

标签:typedef short 定义 指向 unsigned 常用 char 指针


今天开始学习VC++基础,系统编程栏目下都是WinAPI和MFC的内容,此为浏览博客园时学习的一篇文章,觉得很实用,拿来做笔记。

出处见最底部。

 

 

三行代码: 

    typedef char CHAR;     typedef CHAR *PCHAR,*LPCH,*PCH,*NPSTR,*LPSTR,*PSTR;     typedef CONST CHAR *LPCCH,*PCCH,*LPCSTR,*PCSTR;   解释: 1. 第一行:CHAR就是char类型,只是一个大写一个小写。 2. 第二行:PCHAR是一个指向字符的char型指针,因为P就有指针的含义,而CHAR有字符的含义。 3. 第二行:LPCH和PCH含义一样,都是指向字符的指针。那为什么第一个前面加L,这是历史遗留问题,以前分远指针(开头加L)和近指针(开头加N),现在指针都是四个字节,不分远近,加N和加L都一样,不要被L误导,当你看到LPCH时把它看成PCH就可以了。 4. 第二行:同理NPSTR、LPSTRPSTR都一样,都把它看成PSTR,表示指向字符串的指针。STR就是string的缩写。 5. 第三行:LPCCH和PCCH与第二行LPCH和PCH相比多了一个C,为什么?你看定义是不是有一个CONST,表示这是常量指针,就是不能修改指针指向的内容,所以多了一个C。LPCCH和PCCH表示指向一个字符的常量指针。LPCSTRPCSTR表示指向字符串的常量指针。     接着看四行代码:       typedef unsigned short wchar_t;     typedef wchar_t WCHAR;     typedef WCHAR *PWCHAR,*LPWCH,*PWCH,*NWPSTR,*LPWSTR,*PWSTR;     typedef CONST WCHAR *LPCWCH,*PCWCH,*LPCWSTR,*PCWSTR;   解释: 1. 第二行:WCHAR实际就是unsigned short类型,W就是word的缩写,占两个字节。 2. 第三行:PWCHAR、LPWCH、PWCH表示指向宽字符的unsigned short指针;LPWSTRPWSTR表示指向字符串的unsigned short指针。 3. 第三行:表示常量指针。     最后看这七行代码:       #indef UNICODE     typedef unsigned short TCHAR,*PTCHAR,*PTCH,*LPTCH,*PTSTR,*LPTSTR;     typedef const unsigned short *LPCTSTR;     #else   //ANSI     typedef char TCHAR,*PTCHAR,*PTCH,*LPTCH,*PTSTR,*LPTSTR;     typedef const char *LPCTSTR;     #endif     将二三行和五六行代码对比可知,除了类型由unsigned short变成 char其他都没变,其中每个都含有有一个T,表示通用,可以在ANSI和Unicode两个版本中来回切换使用而不用改代码。     让你不再晕,完整诠释PCHAR、LPCH、PCH、NPSTR、LPSTR、PSTR - 失落‘80 - 博客园 (cnblogs.com)

标签:typedef,short,定义,指向,unsigned,常用,char,指针
来源: https://www.cnblogs.com/CaramonJr/p/16459977.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有