百科问答小站 logo
百科问答小站 font logo



为什么存在着size_t, LPCSTR, wchar_t等别名? 第1页

  

user avatar   yao-dong-27 网友的相关建议: 
      

这几个东西来历不一样

size_t 是用来表示大小或多少的一个类型,因为size的取值范围是由内存大小决定的,很久以前内存很小,也许16bit就够了,现在动不动都几百GB内存,64bit才够,用个抽象类型容易移植。size_t虽然不是keyword,但是由于STL里大量使用也就等于是标准了。

LPCTSTR,其实你还少打了个 ‘T’,这个要分拆来理解

P 表示指针 LP 表示长指针,因为在古代指针分为 16bit和32bit

C 表示常量const,作用在指针上就是 const *

T 表示text,因为这个字符串有可能是 char * 或者 是 wchar_t *,根据编译选项会变化所以用抽象的T来表示,所以还有对应的 LPCSTR和LPCWSTR

STR 是string的缩写

这货其实是Windows API特有的,别的平台没这个。

wchar_t 是针对char来的,char早已被定义为一个 byte了,而无法表示更多的unicode字符,所以wchar_t是设计来解决这个问题的,但是wchar_t没有指定到底几个byte,根据编译器操作系统而有不同定义,两个byte 或者 四个byte。




  

相关话题

  <<深度探索c++对象模型>>中的虚继承看着蛋疼,感觉这在实际中也没多大用,需要继续深究吗? 
  C++ 的什么是 Java 不能取代的? 
  以函数编程语言作为入门的编程语言有什么好处? 
  作为程序员,我们应该更关注代码质量还是只需要以完成功能就好了? 
  网络上有若干客户端向一台机器的某个端口一直不停发送UDP包 这台机器打开端口和不打开端口的区别在哪? 
  能否把高版本的libstdc++静态连接到一个只暴露纯C接口的动态库中,给低版本c++程序调用? 
  如何在一个月内提高 C++ 水平? 
  大型项目中面向过程思想 vs 面向对象思想,哪种开发效率更高? 
  用 C++ 实现大整数的加减,思路是什么? 
  最让你伤心的bug是什么? 

前一个讨论
埃及军方在埃及扮演怎样的角色?
下一个讨论
疯狂的麦克斯和北斗神拳有没有什么关系?





© 2025-01-03 - tinynew.org. All Rights Reserved.
© 2025-01-03 - tinynew.org. 保留所有权利