Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
数据结构
rt-uint8_t 和 普通 uint8 的区别
发布于 2024-01-18 20:09:44 浏览:889
订阅该版
如题,请问下rt-uint8_t 和 普通 uint8(也包括16/32位等整数)的区别?我很好奇为什么RT-Thread要定义一整套自己的整型变量系统,并且也支持c库中原来自带的变量类型。如果相比于原装的库有优势或者区别的话,它们区别在哪里呀?谢谢!
查看更多
4
个回答
默认排序
按发布时间排序
lchnu
2024-01-18
Witness, Understand, Skill
## 参考链接 C标准是在不停变化的。具体每一个版本中变化了多少,我就没有深入研究过了。 这里有几个帖子可以帮助你了解一下C中基本的char,int等。第一个帖子中说明了char,int的比特长度是`at least`(至少)。 https://stackoverflow.com/questions/5256000/integer-size-in-c-depends-on-what https://zhuanlan.zhihu.com/p/542579792 https://zhuanlan.zhihu.com/p/363380373 ## 回复 第二个帖子中有意思的一个回复如下,我没有见过这么变态的处理器。 > 遇到过char是10bit的平台,当时把我和同事折磨了很久,一群人在那里思考为什么有bug?bug怎么是这个表现? RT-Thread使用自己的一套数据类型是为了移植方便。若在不同平台(与CPU,编译器都有关)上移植,修改redef.h头文件即可。 显然,如果遇到和第二个帖子一样的平台,修改下方的`unsigned char`到平台支持的8bit类型,就可方便进行移植。否则,所有文件中的数据类型都要重新改写了。 ```c typedef unsigned char rt_uint8_t ``` ## 进一步举例 假设,A平台中short是16位,int是32位;B平台中int是16位,long是32位。 A平台的rtdef.h ```c typedef unsigned short rt_uint_16_t; typedef unsigned int rt_uint_32_t; ``` B平台的rtdef.h ```c typedef unsigned int rt_uint_16_t; typedef unsigned long rt_uint_32_t; ``` ## 小结 借用第一个帖子中的说明:`C is implementation-dependent.` RT-Thread作为一个通用的RTOS,希望能在不同平台上执行,所以需要在rtdef.h中使用一套自定义的基本类型,便于移植。
Tamap
2024-01-18
这家伙不懒,签名都写了
个人理解有限,说一下我的看法。我觉得如果单论`rt_uint8_t`这个数据类型的话,应该和`uint8_t`在可移植性这方面没什么区别,除开一些我不了解的平台,主流平台(MDK、IAR、GCC……)应该都是支持`uint8_t`的,只要包含了`stdint.h`。 1. 不过一方面有许多人并不习惯于使用`uintxx_t`, 可以看到别人的代码中,有人用`unsigned char`,有人用`u8`, 有人用`UCHAR`。定义了`rt_uint8_t`相当于告诉使用者,这有一套完善的变量类型,直接用就好。 2. 抛开8/16/32位这种变量类型之外,还有`rt_size/base_t`等为RTThread本身服务的变量类型,特别是以及原本库里面没有的`rt_bool_t`(C++有),单独定义几个特别的类型,确实有点奇怪,使用者一会用这个一会用那个,索性就都定义了吧我觉得。 3. ~~反正我一般是直接用 stdint.h 的定义的 【狗头】~~ (用到rtt的项目就用`rt_xx_t`)
梦笑真美
2024-01-22
这家伙很懒,什么也没写!
一样的
哈喽你好啊
2024-01-23
这家伙很懒,什么也没写!
为了统一性以及不通平台移植的便捷性吧
撰写答案
登录
注册新账号
关注者
1
被浏览
889
关于作者
JMQN_4639
STM32F407
提问
6
回答
13
被采纳
1
关注TA
发私信
相关问题
1
FlashDB如何解决存储数据后扩展数据结构的问题?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
如何在master上的BSP中添加配置yml文件
2
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
3
RT-Thread 发布 EtherKit开源以太网硬件!
4
rt-thread使用cherryusb实现虚拟串口
5
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
14
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部