找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3408|回复: 23
打印 上一主题 下一主题
收起左侧

这个C语言数据类型加括号是啥意思?

  [复制链接]
跳转到指定楼层
楼主
ID:847776 发表于 2021-6-6 14:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看到下面一段代码,后面括号里面的uint代表unsigned int,但是用括号括起来是什么意思呢?后面还跟十六进制数,没看明白

/** IO属性定义 */
//准双向口
#define IO_IN_OUT_PUT_M0                        ((uint) 0x00)
#define IO_IN_OUT_PUT_M1                        ((uint) 0x01)









分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2021-6-6 15:05 | 只看该作者
语法要求,记住就行。
回复

使用道具 举报

板凳
ID:933803 发表于 2021-6-6 16:48 | 只看该作者
固定要求,记住就行
回复

使用道具 举报

地板
ID:554500 发表于 2021-6-6 21:50 | 只看该作者
0x01表面上看是占一个字节内存
但是用(uint) 做类型转换,这样的话0x01就占了两个字节内存。
不知道这样说能明白不
回复

使用道具 举报

5#
ID:157057 发表于 2021-6-6 22:03 | 只看该作者
强制类型转换
回复

使用道具 举报

6#
ID:157057 发表于 2021-6-6 22:03 | 只看该作者
十六进制数是编号!
回复

使用道具 举报

7#
ID:592807 发表于 2021-6-7 08:18 | 只看该作者
类型强制转换,
回复

使用道具 举报

8#
ID:934036 发表于 2021-6-7 09:20 | 只看该作者
固定的
回复

使用道具 举报

9#
ID:934096 发表于 2021-6-7 11:08 | 只看该作者
语法规定
回复

使用道具 举报

10#
ID:606226 发表于 2021-6-7 12:15 | 只看该作者

类型强制转换
回复

使用道具 举报

11#
ID:808634 发表于 2021-6-7 12:28 | 只看该作者
为了让机器识别
回复

使用道具 举报

12#
ID:487569 发表于 2021-6-7 16:42 | 只看该作者
强制类型转换。一般用于计算结果。 比如 a=(unsigned char)(2.8/2) 本来结果是1.4,强制转换后为1。在你的例子就是转换为 0x0000 和0x0001
回复

使用道具 举报

13#
ID:934876 发表于 2021-6-8 15:51 | 只看该作者
这属于类型强制转换
回复

使用道具 举报

14#
ID:495628 发表于 2021-6-8 16:58 | 只看该作者
先说答案:强制类型转换
详细说明:C语言教材,关于数据类型说明的一节
回复

使用道具 举报

15#
ID:931684 发表于 2021-6-8 20:54 | 只看该作者
是为了表示前面宏定义的这个数是无符号整型变量, 它的编号是0x00
回复

使用道具 举报

16#
ID:420836 发表于 2021-6-9 09:14 | 只看该作者
这种数据操作称为将一种数据类型转换为另一种数据类型,也称为类型转换。
回复

使用道具 举报

17#
ID:935291 发表于 2021-6-9 10:38 | 只看该作者
为了让你使用的宏定义代表的数字是括号里这个数据类型,这是强制转换,不写的话可能默认的数据类型是带符号整型,或者是其它可能会导致出问题的数据类型
回复

使用道具 举报

18#
ID:934838 发表于 2021-6-9 11:01 | 只看该作者
语法要求的,是类型强制转换
回复

使用道具 举报

19#
ID:415064 发表于 2021-6-14 21:42 | 只看该作者
别被坑了,还记得宏的用发么,替换!直接替换!
#define L 5+5
#define R (5+5)
uint32_t test = R / 2
第一个会算成5+5/2=7
第二个会算成(5+5)/2=5
回复

使用道具 举报

20#
ID:637144 发表于 2021-6-14 22:37 | 只看该作者
类型强制转换...
回复

使用道具 举报

21#
ID:937452 发表于 2021-6-15 09:34 | 只看该作者
最外层括号是给预处理程序看的,让程序在预处理时把((uint) 0x00)看作一个整体, 内层括号的意思是将0x00(有符号类型)强制转换为无符号类型。
回复

使用道具 举报

22#
ID:937799 发表于 2021-6-15 10:47 | 只看该作者
类型强转
回复

使用道具 举报

23#
ID:727267 发表于 2021-6-15 11:35 | 只看该作者
我个人也是理解为强制类型转换,但是沙发和板凳所说的“格式要求”,这个是有什么意义呢?
是不是在在宏定义的时候,使用强制类型转换,确保数据格式的准确性??
求指教
回复

使用道具 举报

24#
ID:81196 发表于 2021-6-16 08:46 | 只看该作者
类型强制转换时必须使用的表示方法,就和指针用*一样,固定搭配而已。语法规则规定如此记住强制转换加括号即可。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表