阅读:986回复: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 10:29
是说明用的,解释入口参数类型 :D,本身无意义
|
|
|
板凳#
发布于:2003-04-17 18:44
本人初学,问一个很菜但一直困扰我的问题,就拿入口函数来说 IN 说明参数是输入类型,OUT 说明参数是输出类型,OPTION 说明该参数为可选项 只是让你看的清楚一点,免得用错 |
|
|
地板#
发布于:2003-04-18 11:15
谢谢两位高手指点先,虽然这个“IN”起到说明的功能我猜到了。
但我的问题是: 定义标示符的用法,我察看了#define的语法说明,好像没有单独定义标示符这样的用法啊,#define定义如下 #define <宏名> <字符串> 比如:#define PI 3.1415926 //用PI这个宏名来替换3.1415926 但只有宏名,没有被替换的对象这种用法可以吗?为什么很多C语言书籍并没有介绍这种定义说明标示的用法?而仅仅介绍宏替换的用法? 另外在函数里面的参数引用时,可以单独用宏名对参数进行说明吗?我查C语言书里并没有介绍这一块,如果查书,查哪里?谢谢! 给分怎么给? |
|
地下室#
发布于:2003-04-18 13:23
定义标示符的用法,我察看了#define的语法说明,好像没有单独定义标示符这样的用法啊,#define定义如下 呵呵,兄弟,建议你多看看条件编译,每个头文件不都是以下形式吗 #ifndef ××× #define ××× 。。。。。。。 #endif 具体到你的问题是一样的道理,这里宏只是定义这个符号名而已,不用给他赋值 另外在函数里面的参数引用时,可以单独用宏名对参数进行说明吗?我查C语言书里并没有介绍这一块,如果查书,查哪里?谢谢! 呵呵,就因为它只是一个宏名,而且实际上是一个被你定义为null的宏,那么编译器在编译时将会用null代替你的宏,所以它不影响你的程序运行,只是让你看看罢了,跟注释性质差不多,呵呵 |
|
|
5楼#
发布于:2003-04-18 13:36
明白了,真是一点不通,什么都不通,原来是偶的编译知识太差,回去补课!
分给你给少了,但我现在也不知如何给你加分了,有机会补吧! (可能这个问题您看起来很简单,可我不懂的就是象面对一座山啊,再次感谢帮我搬了一座山!) |
|
6楼#
发布于:2003-04-18 13:46
上面我所说的有些是我自己的理解,如果错了,请各位大侠指出,呵呵
其实关于编译原理我也不懂,可能多看点“名著”或者代码帮助比较大 [编辑 - 4/18/03 by mailme] |
|
|