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来定义与平台无关的类型。
位平台的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是什么?的更多相关文章
- Objective-C 中Socket常用转换机制(NSData,NSString,int,Uint8,Uint16,Uint32,byte[])
最近项目中要用到socket通讯,由于涉及到组包问题,所以需要数据类型之间的来回转换,现在分享出来 如果想要请教Socket的问题请留言,我会随时回答的 1. int类型转16进制hexstring ...
- 开源组件ExcelReport 1.5.2 使用手册
ExcelReport是一款基于NPOI开发的报表引擎组件.它基于关注点分离的理念,将数据与样式.格式分离.让模板承载样式.格式等NPOI不怎么擅长且实现繁琐的信息,结合NPOI对数据的处理的优点将E ...
- Golang 语法学习笔记
Golang 语法学习笔记 包.变量和函数. 包 每个 Go 程序都是由包组成的. 程序运行的入口是包 main. 包名与导入路径的最后一个目录一致."math/rand" 包由 ...
- Go语言程序设计(1)--基本语法
第一个程序 package main import "fmt" func main() { fmt.Printf("Hello world") } 通过阅读这个 ...
- Golang语法与代码格式速记【转】
// Description: Golang语法与代码格式速记 // Author: cxy // Date: 2013-04-01 // Version: 0.3 // TODO 说明 // TOD ...
- 【Go入门教程2】内置基础类型(Boolean、数值、字符串、错误类型),分组,iota枚举,array(数值),slice(切片),map(字典),make/new操作,零值
这小节我们将要介绍如何定义变量.常量.Go内置类型以及Go程序设计中的一些技巧. 定义变量 Go语言里面定义变量有多种方式. 使用var关键字是Go最基本的定义变量方式,与C语言不同的是Go把变量类型 ...
- 【GoLang】golang 最佳实践汇总
最佳实践 1 包管理 1.1 使用包管理对Golang项目进行管理,如:godep/vendor等工具 1.2 main/init函数使用,init函数参考python 1.2.1 main-> ...
- swift基础:第三部分:对第一部分的补充说明
今天是我学习swift的第二天,虽然我和swift的距离有点远,但我相信,我会慢慢的接近这门语言的.好了,我们聊聊昨天晚上的事吧,昨天晚上下班早,回到家时,真是惊喜哈,宿舍那两做好了饭,等我吃饭,想对 ...
- GOLANG 基本数据类型 整型
基本数据类型-整型 种类 有符号(负号) int8 int16 int32 int64 无符号(无符号) uint8 uint16 uint32 uint64 架构特定(取决于系统位 ...
- Nim教程【七】
这是国内第一个关于Nim的系列教程 先说废话 很开心,在今天凌晨快一点多的时候拿到了 nim-lang.com:nim-lang.cn:nim-lang.net 这三个域名,到不是为了投资,准备用ni ...
随机推荐
- Android开发Eclipse中DDMS中Heap使用及GC_EXTERNAL_ALLOC含义
一.先说DDMS中的Heap的使用,通过可以观察VM中的Java内存,但是无法查看通过JNI分配的内存. 直接上图,废话少说... 图一:将要查看内存使用情况的项目Update heap 图二:操作项 ...
- wpf控件开发基础(2) -属性系统(1)
原文:wpf控件开发基础(2) -属性系统(1) 距离上篇写的时间有1年多了.wpf太大,写的东西实在太多,我将依然围绕着自定义控件来展开与其相关的技术点. 也欢迎大家参与讨论.这篇我们将要讨论的是W ...
- repo/git Android/CyanogenMod srouce code
For getting the whole Android/CM rom source code, 1. get the repo first.2. make sure the git is inst ...
- eclipse中JUnit工具的使用
- 机器学习:DeepDreaming with TensorFlow (二)
在前面一篇博客里,我们介绍了利用TensorFlow 和训练好的 Googlenet 来生成简单的单一通道的pattern,接下来,我们要进一步生成更为有趣的一些pattern,之前的简单的patte ...
- OpenGL(二十二) gluBuild2DMipmaps 加载Mip纹理贴图
当纹理被用于渲染一个面积比它本身小很多的对象时,会由于纹理图像的降采样率不足而导致混叠现象,主要的表现特征是纹理图像的闪烁,出现纹理躁动.特别是在场景远近移动变换时,这种闪烁情况更为明显,严重可能会影 ...
- (转)总结:JavaScript异步、事件循环与消息队列、微任务与宏任务
前言 Philip Roberts 在演讲 great talk at JSConf on the event loop 中说:要是用一句话来形容 JavaScript,我可能会这样: “JavaSc ...
- react项目实践——(4)依赖安装与配置
1. 修改package.json,添加需要安装的包 { "name": "myapp", "version": "1.0.0&q ...
- [视频]产品营销之拍出好电子产品,Peter Belanger是如何为苹果产品拍照的
Peter Belanger –他就是那些颠覆你想象的苹果产品照片的摄影师.作为旧金山的顶级产品图片设计师的 Peter,他还拥有 eBay, Nike, Pixer 和 Square 等客户. 让我 ...
- .NET Framework 源代码
微软在线源代码:http://referencesource.microsoft.com/ 压缩包:http://download.csdn.net/detail/xunzaosiyecao/8497 ...