char-请人解释下这个结构体的使用!!

问题描述

请人解释下这个结构体的使用!!

我看到程序中有如下变量定义,其中如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

char-请人解释下这个结构体的使用!!的相关文章

c#-请帮忙解释下下列函数的作用。谢谢

问题描述 请帮忙解释下下列函数的作用.谢谢 输入的参数是鼠标的X,Y坐标,请问转换后是什么? private static int MAKEPARAM(int l, int h) { return ((l & 0xffff) | (h << 0x10)); } 解决方案 其实这代码就是把l的最低16位和h的最高16位放在一起. 解决方案二: private static int MAKEPARAM(int l, int h) { return h * 65536 + l % 65536

Linux下C结构体初始化[总结]

1.前言 今天在公司看一同事写的代码,代码中用到了struct,初始化一个struct用的是乱序格式,如下代码所示: typedef struct _data_t { int a; int b; }data_t; data_t data = { .a = 10, .b = 20, };   通常初始化一个结构体的方式是按序初始化,形如:data_t data={10,20}.感觉很好奇,如是上网百度一下,发现linux下struct初始化可以采用顺序和乱序两种方式,而乱序又有两种不同的形式.本文

请帮忙解释下Collenction变量为空的原因

问题描述 import java.sql.*;public class ConnDB {private Connection ct = null;public static void main(String args[]){ConnDB cdb = new ConnDB();System.out.println(cdb.getConn());}public Connection getConn(){try{Class.forName("com.microsoft.sqlserver.jdbc.S

请帮忙写一个JAVA结构体进行参数传递

问题描述 C++H文件结体如下structSDK_COMMATTRI{intiDataBits;//数据位取值为5,6,7,8intiStopBits;//停止位intiParity;//校验位intiBaudRate;//实际波特率};//串口配置structSDK_CONFIG_COMM_X{chariProtocolName[32];//串口协议:"Console"intiPortNo;//端口号SDK_COMMATTRIaCommAttri;//串口属性};structSDK_

请高手解释下这个问题,谢谢

问题描述 一个package里面的类在eclipse 里面运行是可以的,但是我如果在cmd里面运行的话就会报java.lang.NoClassDefFoundError错,还有就是我如果把package去掉的话,类里面调用Class.froName 放在D盘或者e盘下面可以直接运行,但是放在文件夹下面就不行,如果有package声明会报java.lang.NoClassDefFoundError错,我如果把package去掉的话,class.forname("该类名")会报找不到这个类

【Go语言】【12】GO语言的结构体

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://qingkechina.blog.51cto.com/5552198/1671463        当我第一次接触到C语言时,就对结构体投入了极大的兴趣,认为这个东西以后大有作为,后来接触Java.C++,面向对象编程中的对象进入我的视线,经过了这么多年的磨练,回过头来再看结构体依旧是那么亲切:同时从另一个角度上看结构体与面向对象中的成员对象是多么的相像 :) 一.结构体元素 结

Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型

Android For JNI(五)--C语言多级指针,结构体,联合体,枚举,自定义类型 我们的C已经渐渐的步入正轨了,基础过去之后,就是我们的NDK和JNI实战了 一.多级指针 指针的概念我们在前面也讲了许多,也提到了多级指针的概念,那具体我们怎么去操作呢 #include <stdio.h> #include <stdlib.h> main(){ int i = 3; //一级 int* p = &i; //二级,保存一级指针 int** w = &p; //三

结构体sockaddr与struct sockaddr_in的区别和联系

上午学习TinyHttpd的源码,sockaddr 结构体以前没接触过, 在网络编程中经常用到struct sockaddr和struct sockaddr_in,这里简单介绍. 在linux环境下,结构体 struct sockaddr在/usr/include/linux/socket.h 中定义,具体如下: 1 2 3 4 typedef unsigned short sa_family_t; struct sockaddr { sa_family_t sa_family; /* addr

江湖救急:vc结构体字符数组VB.NET如何使用的问题!!

问题描述 vc下的结构体:typedefstructtagIDData{charName[32];charSex[4];charNation[6];charBorn[18];}IDData;Data_stdcallGetDataMsg();我在VB.net中:DeclareFunctionGetDataMsgLib"IDRead.DLL"()AsIDDataStructureIDCardData<VBFixedstring(32)>DimName()Asstring<