home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / lang / c / 16136 < prev    next >
Encoding:
Text File  |  1992-11-08  |  1.9 KB  |  47 lines

  1. Newsgroups: comp.lang.c
  2. Path: sparky!uunet!portal!dfuller
  3. From: dfuller@portal.hq.videocart.com (Dave Fuller)
  4. Subject: Re: need to create a jump table 
  5. Message-ID: <BxBq9L.4sM@portal.hq.videocart.com>
  6. Organization: VideOcart Inc.
  7. X-Newsreader: Tin 1.1 PL3
  8. References: <1992Nov3.025210.27336@ryn.mro4.dec.com>
  9. Date: Sat, 7 Nov 1992 02:15:20 GMT
  10. Lines: 35
  11.  
  12. uyeno@subsys.enet.dec.com (Alice Uyeno) writes:
  13. : Hi,
  14. : I'm trying to develop a jump table.  Actually, the scenario is that I have two jump tables.  Depending on the value of a certain flag, I use one or the other.  Each jump table consists of pointers to functions.  I'm wondering if it is possible to have the functions with varying number of parameters.  For example, if my jump table contains pointers to ErrorRoutine and ValidateCmd, where the prototypes for the routines are as follows:
  15. :     void ErrorRoutine(int *ErrCode, struct foo * MyPtr);
  16. :         void ValidateCmd(struct foo * CmdPtr);
  17. : void (* FcnTbl[])() = {ErrorRoutine,ValidateCmd};
  18. : where 
  19. :     ptr = FcnTbl;
  20. : and ptr is how the jump table is referenced.
  21.  
  22. Alice,
  23.   I would like to help you, but i don't have enough information, also i think
  24. i am slightly confused. you said that you have jump tables (plural), but
  25. i only see a definition for 1 function table. if you really have 2 function
  26. tables then it would be ok to have different # of parameters, but with 1 
  27. table it gets sort of impossible. if it were allowed, you would have to
  28. test the value of the function pointer to know how many parameters to pass.
  29. this is ugly also.
  30.  
  31. if all of the pointed to functions took the same number of parameters
  32. this would be simple. maybe you need to modify the ideas behind this,
  33. maybe i just dont see well enough into this to solve it.
  34.  
  35. If you are willing to give more specific info, i'd be glad to try to
  36. help.    
  37.  
  38. Dave Fuller
  39. dfuller@portal.hq.videocart.com
  40.  
  41.