https://blog.csdn.net/lzx_bupt/article/details/7066577

在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的工程中一定要做一些这方面的工作,因为你会涉及到跨平台,不同的平台会有不同的字长,所以利用预编译和typedef可以让你最有效的维护你的代码。为了用户的方便,C99标准的C语言硬件为我们定义了这些类型,我们放心使用就可以了。

按照posix标准,一般整形对应的*_t类型为:
       1字节     uint8_t
       2字节     uint16_t
       4字节     uint32_t
       8字节     uint64_t

最新文章

  1. js Function()构造函数
  2. python成长之路【第五篇】:python字符编码
  3. library cache lock和cursor: pin S wait on X等待
  4. 我们都忽略了Html5的力量,如果只看成一种技术就大错特错了!
  5. android5.0中RecycleView的用法
  6. MSSQL的编译和执行过程
  7. floodlight 学习(一)
  8. 用Python复习离散数学(一)
  9. 笨方法学python--读写文件
  10. Android 自定义 SpinnerButton(转)
  11. 201521123117 《Java程序设计》第7周学习总结
  12. java实现异步调用实例
  13. Adams命令
  14. Mysql加锁过程详解(9)-innodb下的记录锁,间隙锁,next-key锁
  15. Python_tkinter(2)_常用控件
  16. 006-筛选分类排序搜索查找Filter-Classificatio-Sort-Search-Find-Seek-Locate
  17. HTTP访问控制(CORS)
  18. Trident中的解析包含的函数操作与投影操作
  19. Java环境配置之JDK安装
  20. Maven的classifier作用

热门文章

  1. autodesk2023全家桶 Autodesk 2023 所有产品下载地址
  2. 【最新最新】mac pro 安装扩展imagick 最新总结
  3. php正方形图片转成成圆形图片-GD
  4. 【面试题】ES6语法五之箭头函数
  5. 2022-05-27内部群每日三题-清辉PMP
  6. 靶机练习4: SolidState
  7. VIM、VI编辑中一个Tab设置为4个空格
  8. web执行shell脚本
  9. nginx 同一个域名根据后缀不同访问不同的项目
  10. 解决在宝塔面板IIS服务器上部署svg/woff/woff2字体的问题