geroge
驱动牛犊
驱动牛犊
  • 注册日期2002-12-13
  • 最后登录2003-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1331回复:6

新手上路,请教NDIS中的函数定义问题

楼主#
更多 发布于:2003-04-12 00:37
本人初学,问一个很菜但一直困扰我的问题,就拿入口函数来说
DDK原型如下:
NTSTATUS
  DriverEntry(
    IN PDRIVER_OBJECT  DriverObject,
    IN PUNICODE_STRING  RegistryPath
    );
请问:这个“IN”是什么用法,还有类似的“OUT”和“OPTION”,我查了NDIS.H文件,对此只是做了如下说明:
#ifndef IN
#define IN
#endif

是编译说明专用的吗?但我还没有这样用过,请教!谢谢!
lgh_26
驱动牛犊
驱动牛犊
  • 注册日期2002-11-23
  • 最后登录2007-12-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-04-17 15:58
我想下面这个程序帮助你找到答案!
#include<iostream.h>
#define var //定义标识符(你可以把它删了你看会出现什么情况)
var int print(int IntVar);
void main()
{
 var int IntVar;
  IntVar=var(12);
# ifndef var      //若标识符(var)没有定义则编译ifndef下面的代码                  
  IntVar=11;
  cout<<\"IntVar=\"<<IntVar;
   #else          //若标识符(var)已定义则编译else下面的代码
  
cout<<\"IntVar=\"<<IntVar;
#endif
}
var int print(int IntVar)
{
return(IntVar);
}
我个人认为它只是为了便于程序员理解 (IN 就是INPUT)
lgh
geroge
驱动牛犊
驱动牛犊
  • 注册日期2002-12-13
  • 最后登录2003-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-04-18 11:07
谢谢指点,虽然这个“IN”起到说明的功能我猜到了。
您的代码展示的很清除,我明白VAR和IN的作用是一样的,但我的问题是:
您说的这块定义标示符的用法,我察看了#define的语法说明,好像没有单独定义标示符这样的用法啊,#define定义如下
#define <宏名>  <字符串>
比如:#define PI 3.1415926 //用PI这个宏名来替换3.1415926

但只有宏名,没有被替换的对象这种用法可以吗?


另外在函数里面的参数引用时,可以单独用宏名进行说明吗?我查C语言书里并没有介绍这一块,如果查书,查哪里?谢谢!
federation
驱动牛犊
驱动牛犊
  • 注册日期2003-04-17
  • 最后登录2003-06-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-04-18 11:48
听你如此说来,我也糊涂了,答案是什么?
dshadow79
驱动牛犊
驱动牛犊
  • 注册日期2002-09-29
  • 最后登录2006-04-10
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-04-18 15:32
IN和OUT纯粹是说明用的
#define IN
#define OUT
都直接把IN和OUT用空替换掉--就是清除掉
dshadow79
驱动牛犊
驱动牛犊
  • 注册日期2002-09-29
  • 最后登录2006-04-10
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-04-18 15:34
IN和OUT纯粹是说明用的
#define IN
#define OUT
都直接把IN和OUT用空替换掉
#define单独定义标识符就是把后面的字符串省略掉,当然就是空了
geroge
驱动牛犊
驱动牛犊
  • 注册日期2002-12-13
  • 最后登录2003-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-04-18 17:13
说的真好,又清楚又明白,谢谢!
游客

返回顶部