本文主要是介绍uint16,uint32是什么?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
记得之前在刷笔试题的时候就看见过这个问题,发现当时上网百度后又忘了。
最近在看CryEngine3引擎代码的时候又晕了,趁现在赶紧记下来~
在查看CE3的代码时我发现了这个变量,TFlowNodeId m_flowNodeId;
心想这是什么鬼?(请理解一个菜鸟没啥经验)
然后果断在VS下按F12查看定义,连着按了几次我终于捋清其中的奥妙。
所以我干脆把uint8,uint32的都找出来了~
typedef unsigned char uchar;typedef uchar uint8;typedef uint8 TFlowPortId;typedef unsigned short ushort;typePOINTdef ushort uint16;typedef uint16 TFlowNodeId;typedef unsigned int uint;typedef uint uint32;
下面我就要针对其意义简单的做一下分析了~
一般来说我们都知道typedef
用来给变量或结构体起别名,之后声明变量的时候看起来比较清晰易懂
例如 typedef char* PCHAR或者 typedef struct tagPOINT{int x;int y;}POINT;PCHAR c;POINT P1;
在这里我们用typedef来定义与平台无关的类型。
int的size取决于平台,16位平台的sizeof(int)=2, 32位平台的sizeof(int)=4, 64位平台的sizeof(int)=8。
(当然这个是不一定得,可能和平台以及编译器有关,多数情况是上面说的那样)
*比如我们想定义一个int16,想让他无论什么平台上都是占16位,即两个字节。
那我们就只需要修改 typedef short int16;
因为在16位和32位机器上(对于一般的编译器来说)short都是占16位,
这样我们就可以声明 int16 a;就达到我们的效果了~
顺便贴一下:
32位系统,vc编译器中,
short占 2 字节,
int 、float、long 都占 4 字节,
double 占8 字节
具体占用几个字节,用sizeof();可以测出来的
上面代码还涉及到unsigned,无符号数,这个在之后的博客里再详细讨论一下吧~
上面有任何不对的地方还请指出,随时更正~
这篇关于uint16,uint32是什么?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!