独闷闷网

标题: 函数指针数组是什么样子的?是怎么用的?已解答。 [打印本页]

作者: jianhong_wu    时间: 2015-1-29 16:54
标题: 函数指针数组是什么样子的?是怎么用的?已解答。
杜育-广东:
哪位大神知道void(*PortSendNBytes[3])(UINT8*szSendBytes,UINT8 ucSendLength)={UARTSendNBytes,USBSendNBytes,NETSentNBytes};究竟是在定义函数、还是数组,还是指针,我真的被它搞混了。

伟-肇庆:
这段代码,是定义了一个数组,数组的元素是函数指针,函数的类型是void ,参数是UINT8*szSendBytes,UINT8 ucSendLength,我在写这段代码,希望能帮助你理解:
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. typedef unsigned char  UINT8  ;

  4. void UARTSendNBytes(UINT8*szSendBytes,UINT8 ucSendLength)
  5. {
  6.    printf("串口发送\r\n");

  7. }



  8. void USBSendNBytes(UINT8*szSendBytes,UINT8 ucSendLength)
  9. {
  10.     printf("USB发送\r\n");

  11. }

  12. void NETSentNBytes(UINT8*szSendBytes,UINT8 ucSendLength)
  13. {
  14.   printf("NETS发送\r\n");

  15. }
  16. void  main()
  17. {
  18.      UINT8  a =0;
  19. void(*PortSendNBytes[3])(UINT8*szSendBytes,UINT8 ucSendLength)={
  20. UARTSendNBytes,USBSendNBytes,NETSentNBytes};

  21. PortSendNBytes[0](&a,1);
  22. PortSendNBytes[1](&a,1);
  23. PortSendNBytes[2](&a,1);

  24.    

  25. }
复制代码







欢迎光临 独闷闷网 (http://www.dumenmen.com/) Powered by Discuz! X3.2