标题: 这个C语言数据类型加括号是啥意思? [打印本页]

作者: 忆1709    时间: 2021-6-6 14:08
标题: 这个C语言数据类型加括号是啥意思?
看到下面一段代码,后面括号里面的uint代表unsigned int,但是用括号括起来是什么意思呢?后面还跟十六进制数,没看明白

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










作者: xuyaqi    时间: 2021-6-6 15:05
语法要求,记住就行。
作者: 3346661547    时间: 2021-6-6 16:48
固定要求,记住就行
作者: 18701931930    时间: 2021-6-6 21:50
0x01表面上看是占一个字节内存
但是用(uint) 做类型转换,这样的话0x01就占了两个字节内存。
不知道这样说能明白不
作者: fefen0    时间: 2021-6-6 22:03
强制类型转换
作者: fefen0    时间: 2021-6-6 22:03
十六进制数是编号!
作者: 黄youhui    时间: 2021-6-7 08:18
类型强制转换,
作者: 疯狂的偏执    时间: 2021-6-7 09:20
固定的
作者: 2214714162    时间: 2021-6-7 11:08
语法规定
作者: c00156155    时间: 2021-6-7 12:15

类型强制转换
作者: 七禾页    时间: 2021-6-7 12:28
为了让机器识别
作者: ZXWPL    时间: 2021-6-7 16:42
强制类型转换。一般用于计算结果。 比如 a=(unsigned char)(2.8/2) 本来结果是1.4,强制转换后为1。在你的例子就是转换为 0x0000 和0x0001
作者: wolf126    时间: 2021-6-8 15:51
这属于类型强制转换
作者: Wongrui    时间: 2021-6-8 16:58
先说答案:强制类型转换
详细说明:C语言教材,关于数据类型说明的一节
作者: 无心法师III    时间: 2021-6-8 20:54
是为了表示前面宏定义的这个数是无符号整型变量, 它的编号是0x00
作者: TTQ001    时间: 2021-6-9 09:14
这种数据操作称为将一种数据类型转换为另一种数据类型,也称为类型转换。
作者: miniq    时间: 2021-6-9 10:38
为了让你使用的宏定义代表的数字是括号里这个数据类型,这是强制转换,不写的话可能默认的数据类型是带符号整型,或者是其它可能会导致出问题的数据类型
作者: 伊苏i    时间: 2021-6-9 11:01
语法要求的,是类型强制转换
作者: wojiaoguogai    时间: 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
作者: 语.    时间: 2021-6-14 22:37
类型强制转换...
作者: 51heicom614    时间: 2021-6-15 09:34
最外层括号是给预处理程序看的,让程序在预处理时把((uint) 0x00)看作一个整体, 内层括号的意思是将0x00(有符号类型)强制转换为无符号类型。
作者: 2927440889    时间: 2021-6-15 10:47
类型强转
作者: qilji鲨齿    时间: 2021-6-15 11:35
我个人也是理解为强制类型转换,但是沙发和板凳所说的“格式要求”,这个是有什么意义呢?
是不是在在宏定义的时候,使用强制类型转换,确保数据格式的准确性??
求指教
作者: shumivan    时间: 2021-6-16 08:46
类型强制转换时必须使用的表示方法,就和指针用*一样,固定搭配而已。语法规则规定如此记住强制转换加括号即可。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1