问题描述
- 请人解释下这个结构体的使用!!
-
我看到程序中有如下变量定义,其中如Data_Trans_COM1_Protocol都是函数,void Data_Trans_COM1_Protocol(unsigned char Data , int port, struct POSITION pstPosition).struct char_dev_struct char_dev[PROTOCOL_TYPE_NUM ][NR_CHAR_DEV +1 ]= { { NULL, Data_Trans_COM1_Protocol, Data_Trans_COM2_Protocol, Data_Trans_COM3_Protocol, Data_Trans_Trusted_COM4_Protocol, Data_Trans_COM5_Protocol, Data_Trans_COM6_Protocol, Data_Trans_Trusted_COM7_Protocol, Data_Trans_COM4_Protocol }, { NULL, Data_Trans_COM1_Protocol, Data_Trans_COM2_Protocol, Data_Trans_COM3_Protocol, Data_Trans_Trusted_COM4_Protocol, Data_Trans_COM5_Protocol, Data_Trans_COM6_Protocol, Data_Trans_Trusted_COM5_Protocol, Data_Trans_Trusted_COM4_Protocol } }; 调用时如下,但不知Data_Trans_Protocol_Fn是哪里来的. char_dev[protocoltype][port].Data_Trans_Protocol_Fn(src, port, pstPosition);
解决方案
Data_Trans_Protocol_Fn 是哪里来的,要看结构体 struct char_dev_struct 的定义。
代码中看到的只是对 struct char_dev_struct 变量 char_dev 二维数组的赋值,所以是看不到 Data_Trans_Protocol_Fn 具体是指哪个结体体的成员。
解决方案二:
定义了函数指针的二维数组。
:Data_Trans_Protocol_Fn应该是函数指针原型。
时间: 2024-08-29 14:51:03