longriver2003
驱动小牛
驱动小牛
  • 注册日期2003-09-14
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:868回复:2

急于想知道答案的一个菜问题!HELP。。。

楼主#
更多 发布于:2003-11-04 10:38
看一个驱动程序码时碰到一个语句不懂,请高手指点:
NTSTATUS CharSampleDevice::DeviceControl(KIrp I)
{
NTSTATUS status;
CHAR n,c[]=\"零一二三四五六七八九\";

T << \"CharSampleDevice::DeviceControl\\n\";

switch (I.IoctlCode())
{
case CHARSAMPLE_IOCTL_800:
n=*(CHAR *)I.IoctlBuffer();
if ((n >= \'0\') && (n <= \'9\'))
{
n -= \'0\';
strncpy((PCHAR)I.IoctlBuffer(),&c[n*2],2);
I.Information() = 2;
status = STATUS_SUCCESS;
}
else
status = STATUS_INVALID_PARAMETER;
break;

default:
// Unrecognized IOCTL request
status = STATUS_INVALID_PARAMETER;
break;
}

return I.PnpComplete(this, status);
}

请问里面的n -= \'0\';是什么意思?
给分才有动力!所以我坚决给分!
luxs200
驱动牛犊
驱动牛犊
  • 注册日期2001-07-23
  • 最后登录2015-03-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-11-04 11:47
n -= \'0\'应该是把字符1到9转换成数字1到9。
例如:n = \'2\'时,则n -= \'0\'后,n = 2;
longriver2003
驱动小牛
驱动小牛
  • 注册日期2003-09-14
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-11-04 12:24
TO:luxs200
 谢谢!原来如此,没反应过来。
给分才有动力!所以我坚决给分!
游客

返回顶部