阅读:1331回复:6
新手上路,请教NDIS中的函数定义问题
本人初学,问一个很菜但一直困扰我的问题,就拿入口函数来说
DDK原型如下: NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath ); 请问:这个“IN”是什么用法,还有类似的“OUT”和“OPTION”,我查了NDIS.H文件,对此只是做了如下说明: #ifndef IN #define IN #endif 是编译说明专用的吗?但我还没有这样用过,请教!谢谢! |
|
沙发#
发布于: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) |
|
|
板凳#
发布于:2003-04-18 11:07
谢谢指点,虽然这个“IN”起到说明的功能我猜到了。
您的代码展示的很清除,我明白VAR和IN的作用是一样的,但我的问题是: 您说的这块定义标示符的用法,我察看了#define的语法说明,好像没有单独定义标示符这样的用法啊,#define定义如下 #define <宏名> <字符串> 比如:#define PI 3.1415926 //用PI这个宏名来替换3.1415926 但只有宏名,没有被替换的对象这种用法可以吗? 另外在函数里面的参数引用时,可以单独用宏名进行说明吗?我查C语言书里并没有介绍这一块,如果查书,查哪里?谢谢! |
|
地板#
发布于:2003-04-18 11:48
听你如此说来,我也糊涂了,答案是什么?
|
|
地下室#
发布于:2003-04-18 15:32
IN和OUT纯粹是说明用的
#define IN #define OUT 都直接把IN和OUT用空替换掉--就是清除掉 |
|
5楼#
发布于:2003-04-18 15:34
IN和OUT纯粹是说明用的
#define IN #define OUT 都直接把IN和OUT用空替换掉 #define单独定义标识符就是把后面的字符串省略掉,当然就是空了 |
|
6楼#
发布于:2003-04-18 17:13
说的真好,又清楚又明白,谢谢!
|
|