阅读:1416回复:6
求教打印机驱动代码含义,望大侠指教
好像是设置打印方法的函数
int lpt_sel_prn_method(int id, int color, int media, int quality) { static int (*inst[])(int, int, int, int) = { ~~~~~~~~~~~~~~~ lpt_sel_prn_method3, lpt_sel_prn_method1 }; return (*inst[id != 3])(id, color, media, quality); } ~~~~~~~~~~~~~~~~~~~~ 其中(*inst[])(int, int, int, int)这个函数看不懂,(*inst[])是函数名吗,后面的是它的参数? |
|
沙发#
发布于:2005-01-04 08:38
看这里
http://www.driverdevelop.com/forum/html_84368.html?1104799101 |
|
|
板凳#
发布于:2005-01-04 09:00
还是不太明白,能否把过程说的详细一些。
|
|
地板#
发布于:2005-01-04 10:38
(*inst)(int, int, int, int)是指针函数 (*inst[])(int, int, int, int)就是一系列的函数列表了 这是指针函数数组,里面存放了两个函数名 inst[2]={lpt_sel_prn_method3,lpt_sel_prn_method1} 这么写可能容易理解一些 int lpt_sel_prn_method3(int id, int color, int media, int quality); int lpt_sel_prn_method1(int id, int color, int media, int quality); int lpt_sel_prn_method(int id, int color, int media, int quality) { int iRet=0; static int (*instFun)(int, int, int, int); instFun inst[]={lpt_sel_prn_method3, lpt_sel_prn_method1}; if(id != 3) iRet=(*inst[1])(id, color, media, quality); else iRet=(*inst[0])(id, color, media, quality); return iRet; } |
|
|
地下室#
发布于:2005-01-04 21:54
说的很明白,谢谢你!
|
|
5楼#
发布于:2005-01-04 22:04
不好意思,给分怎么给呀?
|
|
6楼#
发布于:2005-01-04 22:08
哦,找到了,呵呵,分已送出,请查收。
奇怪怎么就不能送整分呢 |
|