记得之前在刷笔试题的时候就看见过这个问题,发现当时上网百度后又忘了。

最近在看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来定义与平台无关的类型。

位平台的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是什么?的更多相关文章

  1. Objective-C 中Socket常用转换机制(NSData,NSString,int,Uint8,Uint16,Uint32,byte[])

    最近项目中要用到socket通讯,由于涉及到组包问题,所以需要数据类型之间的来回转换,现在分享出来 如果想要请教Socket的问题请留言,我会随时回答的 1. int类型转16进制hexstring ...

  2. 开源组件ExcelReport 1.5.2 使用手册

    ExcelReport是一款基于NPOI开发的报表引擎组件.它基于关注点分离的理念,将数据与样式.格式分离.让模板承载样式.格式等NPOI不怎么擅长且实现繁琐的信息,结合NPOI对数据的处理的优点将E ...

  3. Golang 语法学习笔记

    Golang 语法学习笔记 包.变量和函数. 包 每个 Go 程序都是由包组成的. 程序运行的入口是包 main. 包名与导入路径的最后一个目录一致."math/rand" 包由 ...

  4. Go语言程序设计(1)--基本语法

    第一个程序 package main import "fmt" func main() { fmt.Printf("Hello world") } 通过阅读这个 ...

  5. Golang语法与代码格式速记【转】

    // Description: Golang语法与代码格式速记 // Author: cxy // Date: 2013-04-01 // Version: 0.3 // TODO 说明 // TOD ...

  6. 【Go入门教程2】内置基础类型(Boolean、数值、字符串、错误类型),分组,iota枚举,array(数值),slice(切片),map(字典),make/new操作,零值

    这小节我们将要介绍如何定义变量.常量.Go内置类型以及Go程序设计中的一些技巧. 定义变量 Go语言里面定义变量有多种方式. 使用var关键字是Go最基本的定义变量方式,与C语言不同的是Go把变量类型 ...

  7. 【GoLang】golang 最佳实践汇总

    最佳实践 1 包管理 1.1 使用包管理对Golang项目进行管理,如:godep/vendor等工具 1.2 main/init函数使用,init函数参考python 1.2.1 main-> ...

  8. swift基础:第三部分:对第一部分的补充说明

    今天是我学习swift的第二天,虽然我和swift的距离有点远,但我相信,我会慢慢的接近这门语言的.好了,我们聊聊昨天晚上的事吧,昨天晚上下班早,回到家时,真是惊喜哈,宿舍那两做好了饭,等我吃饭,想对 ...

  9. GOLANG 基本数据类型 整型

    基本数据类型-整型 种类     有符号(负号)      int8 int16 int32 int64 无符号(无符号) uint8 uint16 uint32 uint64 架构特定(取决于系统位 ...

  10. Nim教程【七】

    这是国内第一个关于Nim的系列教程 先说废话 很开心,在今天凌晨快一点多的时候拿到了 nim-lang.com:nim-lang.cn:nim-lang.net 这三个域名,到不是为了投资,准备用ni ...

随机推荐

  1. vue,js 使用中报错 TypeError: Cannot read property '__ob__' of undefined

    原因: data中没有加return 切记!切记!

  2. GIT 单个文件还原到历史版本号

    首先检查在历史文件中的版本号信息:git log <file> 将文件还原到历史版本号:git reset 版本号 <file> 文档工作区的检测:git checkout - ...

  3. HDU 4847-Wow! Such Doge!(定位)

    Wow! Such Doge! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. Linux运维完全小白入门指南

    前几天整理了一下自己入门时候搜集的资料,一边整理一边回忆. 那时候我还是个小白,用虚拟机装了个CentOS系统来玩,但是总也装不上,在论坛上求助也没人理.半天终于有个人说在某网站看过这个问题,我又找了 ...

  5. Android系统联系人全特效实现(下),字母表快速滚动

    在上一篇文章中,我和大家一起实现了类似于Android系统联系人的分组导航和挤压动画功能,不过既然文章名叫做<Android系统联系人全特效实现>,那么没有快速滚动功能显然是称不上&quo ...

  6. WPF中CAD control的XAML实现

    原文:WPF中CAD control的XAML实现     下面这个XAML文件是cad control里面最重要的一部分,使用Grid包含Viewport,Viewport中包括Camera和mod ...

  7. Linux性能测试 strace命令

    1  功能说明 strace 命令是一种强大的工具 ,  能够显示任何由用户空间程式发出的系统调用 .  strace 显示这些调用的参数并返回符号形式的值 .  strace 从内核接收信息 ,  ...

  8. SQL Server数据库碎片整理

    碎片产生   在SQL Server中,存储数据的最小单位是页,每一页所能容纳的数据为8060字节.而页的组织方式是通过B树结构  SQL Server向每个页内存储数据的最小单位是表的行(Row)  ...

  9. C#调用C/C++ DLL 参数传递和回调函数的总结

    原文:C#调用C/C++ DLL 参数传递和回调函数的总结 Int型传入: Dll端: extern "C" __declspec(dllexport) int Add(int a ...

  10. Activity跳转通过EventBus传值问题

    根据阿里发布的Android开发规范:下载地址:https://102.alibaba.com/downloadFile.do?file=1520478361732/Android_v9.pdf Ac ...