uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结
uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型
在nesc的代码中,你会看到非常多你不认识的数据类型,比方uint8_t等。咋一看。好像是个新的数据类型,只是C语言(nesc是C的扩展)里面好像没有这种数据类型啊!怎么又是u又是_t的?非常多人有这种疑问。论坛上就有人问:以*_t结尾的类型是不是都是long型的?在baidu上查一下,才找到答案,这时才发觉原来自己对C掌握的太少。
那么_t的意思究竟表示什么?详细的官方答案没有找到,只是我认为有个答案比較接近。它就是一个结构的标注。能够理解为type/typedef的缩写,表示它是通过typedef定义的,而不是其他数据类型。
uint8_t,uint16_t。uint32_t等都不是什么新的数据类型。它们仅仅是使用typedef给类型起的别名。新瓶装老酒的把戏。
只是,不要小看了typedef,它对于你代码的维护会有非常好的作用。
比方C中没有bool,于是在一个软件中。一些程序猿使用int,一些程序猿使用short,会比較混乱。最好就是用一个typedef来定义,如:
typedef char bool;
一般来说,一个C的project中一定要做一些这方面的工作,由于你会涉及到跨平台。不同的平台会有不同的字长。所以利用预编译和typedef能够让你最有效的维护你的代码。为了用户的方便。C99标准的C语言硬件为我们定义了这些类型,我们放心使用就能够了。
依照posix标准,一般整形相应的*_t类型为:
1字节 uint8_t
2字节 uint16_t
4字节 uint32_t
8字节 uint64_t
附:C99标准中inttypes.h的内容
00001 /*
00002 inttypes.h
00003
00004 Contributors:
00005 Createdby Marek Michalkiewicz <marekm@linux.org.pl>
00006
00007 THISSOFTWARE IS NOT COPYRIGHTED
00008
00009 Thissource code is offered for use in the public domain. You may
00010 use,modify or distribute it freely.
00011
00012 Thiscode is distributed in the hope that it will be useful, but
00013 WITHOUTANY WARRANTY. ALLWARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00014 DISCLAIMED. This includes but is not limited towarranties of
00015 MERCHANTABILITYor FITNESS FOR A PARTICULAR PURPOSE.
00016 */
00017
00018 #ifndef __INTTYPES_H_
00019 #define __INTTYPES_H_
00020
00021 /* Use [u]intN_t if you need exactly N bits.
00022 XXX- doesn't handle the -mint8 option. */
00023
00024 typedefsigned char int8_t;
00025 typedefunsigned char uint8_t;
00026
00027 typedefint int16_t;
00028 typedefunsigned int uint16_t;
00029
00030 typedeflong int32_t;
00031 typedefunsigned long uint32_t;
00032
00033 typedeflong long int64_t;
00034 typedefunsigned long long uint64_t;
00035
00036 typedefint16_t intptr_t;
00037 typedefuint16_t uintptr_t;
00038
00039 #endif
uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结的更多相关文章
- uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结,看完全明白了
转自:http://blog.csdn.net/kiddy19850221/article/details/6655066 uint8_t / uint16_t / uint32_t /uint64_ ...
- uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型(转)
在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等.咋一看, 好像是个新的数据类型,不过C语言(nesc是C的扩展)里面好像没有这种数据类型啊!怎么又是u又是_t的?很多人有这样 ...
- uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型
在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等.咋一看,好像是个新的数据类型,不过C语言(nesc是C的扩展)里面好像没有这种数据类型啊!怎么又是u又是_t的?很多人有这样的 ...
- uint8_t / uint16_t / uint32_t /uint64_t数据类型详解
uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型? 在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等.咋一看,好像是个新的数据类型 ...
- uint8_t / uint16_t / uint32_t /uint64_t
这些数据类型是 C99 中定义的,它就是一个结构的标注,可理解为type/typedef的缩写,表示通过typedef定义.它们只是使用typedef给类型起的别名 #ifndef _UINT8_T ...
- 基本数据类型大总结(int,str,list,dict,tuple)
python基本数据类型 int==>整数,主要用来进行数学运算 str==>字符串,可以保存单一数值 bool==>判断真假,true,false list==>存储大量数据 ...
- java数据类型大转换
1.字符串类型向整形转换 int age = Integer.parseInt(strAge); 2 int -> String int i=12;String s="";第 ...
- uint16_t
转自:https://blog.csdn.net/kiddy19850221/article/details/6655066 uint8_t / uint16_t / uint32_t /uint64 ...
- 线程安全-一个VC下多个网络请求
一.线程安全变量控制显示隐藏loading框 问题描写叙述: 同一页面有两个异步网络请求,第一个请求開始,loading旋转.第二个请求開始loading旋转.第一个结束,loading停止旋转,但是 ...
随机推荐
- nodeJS(2)深了解: nodeJS 项目架构详解(app.js + Express + Http)
简略了解:nodeJS 深了解(1): Node.js + Express 构建网站预备知识 环境: 环境: win7 + nodeJS 版本(node): 新建 nodeJS 项目: 名称为: te ...
- 面试:ios 批量上传图片
这几天面试,被问到关于GCD的用法,想了想,之前项目好像确实用的比较少,只是知道怎么用,有思路,但是却从来没有试过,回来之后,就尝试写了下: 封装图片上传的方法 /**批量上传图片*/ + (NSUR ...
- libc++abi.dylib`__cxa_throw: 使用[AVAudioPlayer play]会产生__cxa_throw异常
libc++abi.dylib`__cxa_throw: 使用[AVAudioPlayer play]会产生__cxa_throw异常 开发中遇到一个奇怪的异常.我调用AVAudioPlayer pl ...
- BZOJ 1658 Water Slides 滑水
Water Slides 滑水 [问题描述] It's a hot summer day, and Farmer John is letting Betsy go to the water park ...
- 教你怎么使用Windows7系统自带的备份与还原的方法
原文发布时间为:2010-09-09 -- 来源于本人的百度文章 [由搬家工具导入] 继续单击“下一步”按钮,在其后界面中检查上述备份设置是否正确,如果不正确的话可以直接单击“取消”按钮,重新设置备份 ...
- c#随机生成汉字、字母、数字
/// <summary> /// 替换变量 /// </summary> /// <param name="content"></par ...
- ABP开发框架前后端开发系列---(1)框架的总体介绍
ABP是ASP.NET Boilerplate的简称,ABP是一个开源且文档友好的应用程序框架.ABP不仅仅是一个框架,它还提供了一个最徍实践的基于领域驱动设计(DDD)的体系结构模型.学习使用ABP ...
- dependencies与devDependencies的安装方法
npm install在安装node模块时,有两种命令参数可以把它们的信息写入package.json文件: –save –save-dev 但它的文档里1,只提到一个小区别,–save会把依赖包名称 ...
- Java NIO中的FileLock(文件锁)
FileLock,文件锁. 文件锁在OS中很常见,如果多个程序同时访问.修改同一个文件,很容易因为文件数据不同步而出现问题.给文件加一个锁,同一时间,只能有一个程序修改此文件,或者程序都只能读此文件, ...
- 在Bonobo服务器里创建Repository(库)
新建Repository步骤如下: 点击“库”链接,进入“库管理”页面,如下图所示: 在“库管理”页面点击“创建新库”按钮,进入“创建新库”页面,如下图所示: 点击“建立”按钮,会进入“库管理”页面, ...