public abstract class Union extends Struct
This class represents a C/C++ union
; it works in the same
way as Struct
(sub-class) except that all members are mapped
to the same location in memory.
Here is an example of C union:
And its Java equivalent:
union Number {
int asInt;
float asFloat;
char asString[12];
};
As for any
public class Number extends Union {
Signed32 asInt = new Signed32();
Float32 asFloat = new Float32();
Utf8String asString = new Utf8String(12);
}
Struct
, fields are directly accessible:
Number num = new Number();
num.asInt.set(23);
num.asString.set("23"); // Null terminated (C compatible)
float f = num.asFloat.get();
Struct.BitField, Struct.Bool, Struct.Enum16<T extends java.lang.Enum>, Struct.Enum32<T extends java.lang.Enum>, Struct.Enum64<T extends java.lang.Enum>, Struct.Enum8<T extends java.lang.Enum>, Struct.Float32, Struct.Float64, Struct.Member, Struct.Reference32<S extends Struct>, Struct.Reference64<S extends Struct>, Struct.Signed16, Struct.Signed32, Struct.Signed64, Struct.Signed8, Struct.Unsigned16, Struct.Unsigned32, Struct.Unsigned8, Struct.UTF8String
MAXIMUM_ALIGNMENT
Constructor and Description |
---|
Union()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
isUnion()
Returns
true . |
Copyright © 2005 - 2007 Javolution.