首页
社区
课程
招聘
[求助]一个C语言语法的问题,用DDK编译时出错,不解为什么
发表于: 2009-2-14 17:48 3375

[求助]一个C语言语法的问题,用DDK编译时出错,不解为什么

2009-2-14 17:48
3375
InterruptGate->HighOffset=(unsigned short)(AddressOfNewISR>>16)
DDK编译时提示:error C2296: '>>' : illegal, left operand has type 'PVOID'
为什么会这样呢
注:InterruptGate是我自定义的一个结构型变量,成员HighOffset的数据类型是unsigned short
AddressOfNewISR的数据类型是int

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
--------------------------------------------------------------------------------
InterruptGate->HighOffset=(unsigned short)(AddressOfNewISR>>16)
DDK编译时提示:error C2296: '>>' : illegal, left operand has type 'PVOID'
为什么会这样呢
注:InterruptGate是我自定义的一个结构型变量,成员HighOffset的数据类型是unsigned short
AddressOfNewISR的数据类型是int

回复楼上的好像应该先强制转换了再移位,望路过的大侠赐教。
2009-2-14 18:56
0
雪    币: 225
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谁来帮俺一下
2009-2-14 19:24
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
4
编译器消息很明确,AddressOfNewISR的type是PVOID,而不是你说的int。

只将类型cast到int即可。即:

InterruptGate->HighOffset=(unsigned short)( (int)(AddressOfNewISR)>>16);
2009-2-14 19:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我也觉得 左操作数是不合法的 检查数据类型吧
2009-2-15 00:16
0
游客
登录 | 注册 方可回帖
返回
//