关于强制类型转换的讨论。。。
时间:2011-12-19
来源:互联网
这里定义了一个枚举类型,
typedef enum
{
HVAC_FAULT = 0,
MVB_FAULT = 1,
}SystemFaultTypeDef ;
for(SysmtenIndx=0;SysmtenIndx<2;SysmtenIndx++)
{
SetElementFault(&A,(SystemFaultTypeDef)SysmtenIndx,B);
}
这样(SystemFaultTypeDef)SysmtenIndx强制类型转换出来的值是什么?望高手指导一下,这样枚举型强制类型转换以前没有见过。而且更变态的是即使这样强制类型转换出来的值与本身For循环里的赋值有什么区别?
不用强制类型转换得到的第二个参数的值不是0,就是1.使用了强制转换得到的值也是0或者1.这样搞一下什么用意呢?
忘大家帮忙解释一下,不胜感激!
作者: jetlee2012 发布时间: 2011-12-19
他的第二个参数类型是应该是SystemFaultTypeDef这样做强转可以在程序编译的时候少一个warning。
这是编程习惯问题,编的程序多了就会注意这个问题。
作者: WYJXHL97 发布时间: 2011-12-19
作者: zhumengshu1 发布时间: 2011-12-19
void SetElementFault(A,SystemFaultTypeDef Type,B);
这是SetElementFault函数的声明,在声明中指明了第二个参数是枚举类型。但是还是有点疑惑这种枚举类型是数值型的,假设我们将枚举类型替换成两个枚举字符x,y。
typedef enum
{
HVAC_FAULT = x,
MVB_FAULT = y,
}SystemFaultTypeDef ;
那么(SystemFaultTypeDef)SysmtenIndx强制类型转换后的值是x,y吗?
作者: jetlee2012 发布时间: 2011-12-19
这个应该跟SetElementFault的定义有关,
他的第二个参数类型是应该是SystemFaultTypeDef这样做强转可以在程序编译的时候少一个warning。
这是编程习惯问题,编的程序多了就会注意这个问题。
void SetElementFault(A,SystemFaultTypeDef Type,B);
这是SetElementFault函数的声明,在声明中指明了第二个参数是枚举类型。但是还是有点疑惑这种枚举类型是数值型的,假设我们将枚举类型替换成两个枚举字符x,y。
typedef enum
{
HVAC_FAULT = x,
MVB_FAULT = y,
}SystemFaultTypeDef ;
那么(SystemFaultTypeDef)SysmtenIndx强制类型转换后的值是x,y,还是这样就根本转换不过去应为没有匹配的转换值?
作者: jetlee2012 发布时间: 2011-12-19
作者: zhutou100hao 发布时间: 2011-12-19
回复#1楼
void SetElementFault(A,SystemFaultTypeDef Type,B);
这是SetElementFault函数的声明,在声明中指明了第二个参数是枚举类型。但是还是有点疑惑这种枚举类型是数值型的,假设我们将枚举类型替换成两个枚举字符x,y。
typedef enum
{
HVAC_FAULT = x,
MVB_FAULT = y,
}……
在声明中指明了第二个参数是枚举类型,而你的SysmtenIndx应该是int型吧,所以要强制转换啊,
枚举型是常量:值定义为0,1,2。。。但是不能直接把一个整形数赋值给枚举型的,2者属于不同的类型
你这里是一个整形数据的循环,依次在函数中带入相应的枚举元素,即:循环值为1时,带入枚举元素MVB_FAULT,这样来理解
HVAC_FAULT = 0,
MVB_FAULT = 1,
其中HVAC_FAULT才是枚举元素,0,1,2只是起到枚举元素定义时顺序和判断比较的作用
HVAC_FAULT = x,
MVB_FAULT = y,
这样做是错误的,不能定义为x,y
作者: yuzhenhua001 发布时间: 2011-12-19
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28