2 dxt 1515 dxt_1515 于 2016.09.25 21:05 提问

C中在结构体中嵌套一个联合体,java中应该如何处理?大家帮我看看这样写对不对,还有调用的时候!

C语言:

 typedef struct
{
   u16 Command;
   union
   {
      CImage       Image;
      CSensor      Sensor;
      CEdgeChkData EdgeData;
   } Contact;
} CSensorPkg;

java:

public class CSensorPkg{
        public CSensorPkg(short command) {
            super();
            Command = command;
        }
        private short Command;
        public class Contact{

            public Contact(CImage image, CSensor sensor, CEdgeChkData edgeData) {
                super();
                Image = image;
                Sensor = sensor;
                EdgeData = edgeData;
            }
            CImage      Image;
            CSensor      Sensor;
            CEdgeChkData EdgeData;
        }
    } 

我要调用的时候:PixelCount = receive_data.Contact.EdgeData.Count;老是报错,这是为什么呢?

1个回答

caozhy
caozhy   Ds   Rxr 2016.09.25 23:51

就你这个场合,用object或者泛型表示一个类中不确定是什么类型的一个字段,用不着嵌套类定义。

dxt_1515
dxt_1515 没有嵌套定义,只是生成了一个构造器!然后就不知道怎么弄了!我按照你的方法试一下!
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言中结构体以及在结构体中调用方法;联合体和联合体的使用
#include   #include void study(){}; struct student{ int age; int number; void(*study1)(); } main(){ //使用,在结构体声明的时候为*study1赋值 struct student user={20,20,study}; //方法的使用 user.study1(); }
共用体里嵌套结构体的问题
#include typedef union { unsigned int u; struct { unsigned char a :1; unsigned char b :1; unsigned char c :6; unsigned char d :1; } ST; }UN;
联合体嵌套结构体
#include #include typedef unsigned char UINT8; struct entity { char char0; char char1; char char2; char char3; unsigned short char4;}; union name{ char _name[6]; struct entity Fname;}; struct FLA
结构体struct 联合体union 及内存对齐
原文链接:http://blog.csdn.net/coolingcoding/article/details/7278555 当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将如何在内存中放置这些字段?ANSI C对结构体的内存布局有什么要求?而我们的程序又能否依赖这种布局?这些问题或许对不少朋友来说还有点模糊,那么本文就试着探究它们背后的秘密
结构体和联合体的字节对齐问题
为了提速之类的,在结构体和联合体的内存块中,是按照一定的规则安排的 联合体: 联合体的内存不会为了所有成员安排,而是只取最大的成员的所需内存大小,每次只能使用其中一个成员。但是有一个问题: typedef union { char a; int[5] b; double c; } 当然只取最大的int数组的大小20没错,但是double是8字节的,而此时联合体已经按
C++学习总结(五)——结构体(struct),联合体(union)
一.C与C++的对比 C语言: 1.结构体内部不能包含函数。 2.变量声明时必须加上struct。 3.内部变量没有公有私有的区别。 #define _CRT_SECURE_NO_WARNINGS #include #include #include /*C语言结构体内部不能包含函数 C语言变量声明时必须加上Struct C语言内部的变量没有公有私有*/ struct mystruct
typedef,结构体,共用体,联合体
typedef的用途: 封装数据类型,方便移植 简化函数指针的定义 结构体:不同类的型元素汇聚。 (1)、在声明类型的同时定义变量: struct 结构体名{    成员列表 } 变量名列表;   (2)、直接定义结构体类型变量 struct {      成员列表 }变量名表列;
结构体和联合体在通信协议解析的应用
在串口通信中,我们往往会解析很多协议,而且在协议中会出现不同数据类型的协议;当然我们也可以把协议都定义成某一种数据格式,但是那样会出现协议的复杂度,但是不那样处理的话,程序在处理协议时会变得很难。 为了解决这个问题,本人就应用了结构体和联合体的方式来解决了,反正个人认为自己的方法很实用; 具体方法是: 1、将不同类型的协议分成不同的结构体 struct ChaX_Data     //检测
结构体使用详解,与结构体如何嵌套使用
详细介绍了,结构体的声明,初始化,与使用成员变量的各种方法,其中最大的亮点是结构体的嵌套使用,类和联合也是同样的道理,大家共同学习呀!!
C语言结构体,联合体,枚举体的内存大小计算方法
结构体的定义: struct stu{     char *name;  //姓名     int num;  //学号     int age;  //年龄     char group;  //所在学习小组     float score;  //成绩 }s1; 其中 stu 为结构体的 类型名; s1为 结构体变量