单片机程序编程

各位老铁们好,相信很多人对八位单片机中unsigned char占几位都不是特别的了解,因此呢,今天就来为大家分享下关于八位单片机中unsigned char占几位以及不建议使用unsigned的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

本文目录

  1. 八位单片机中unsigned char占几位
  2. 数据类型u_int32_t和int有什么区别

八位单片机中unsigned char占几位

对于该款单片机,int类型的变量占据2个字节,char类型的占据1个字节。不过一般大家为了节约空间,大部分会使用char类型,同时89C51是一款8位的单片机,所以推荐使用char类型的变量进行运算,即使我们在代码中写入int类型的变量进行运算,也是编译器编译成为了8位的运算模式进行运算的。体现不了硬件的优势。

数据类型u_int32_t和int有什么区别

驱动开发的原则:能用__u32就最好用它,或者用u_int32_t之类的也可以,但不要直接用unsignedint等默认的数据类型。

目的是让别人明白,你这个变量占多大内存

。原因:你不能确定你的代码未来只在一个平台上运行,它可能会被移植到非Linux平台(确实有很多人这么做),它可能运行在不同的CPU平台,比如64位环境,非x86环境。因为C语言中并

未明确规定int一定要占多少字节

,只是规定了long>=int>=short,所以__u32就是告诉别人,这变量占4字节。同样的:__iomem也是能加就加,这样当你的驱动被别人维护的时候,别人会明白,这块内存是用于IO的,可DMA的,而不是paged-memory。说到底,

这是一种良好的编码风格

,确实,不加这些东西,对于编译和运行来说,可能是无任何影响的,但是,不写注释的代码一样也对编译和运行无影响,

你敢一句注释都不写吗?

--------------------------------------驱动中使用哪种类型最标准,这个没有正确答案,但建议是不使用C语言原始的数据类型(char/short/int/long),而是使用有明确字节大小的数据类型(u_int32_t/__u32/uint32_t/DWORD/UINT32均可)。保持代码风格的一致性即可。Linux社区提倡开放,并不严格限制开发者必须用哪种类型,一切都只是

建议使用

。但有一种情况是例外的:开发标准库函数,比如自己实现strlen,那么返回值就必须是size_t,因为标准库是标准的。

好了,文章到这里就结束啦,如果本次分享的八位单片机中unsigned char占几位和不建议使用unsigned问题对您有所帮助,还望关注下本站哦!

单片机开发中的一些实用技巧