C#
中的结构体和共用体
C#
中,
结构体和共用体与
C++
表现上有所不同,他们都用
struct
关键字定义,具体用法为:
1.
结构体,这种定义跟
C++
的结构体相同,
LayoutKind.Sequential
描述为结构体,可以不写
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public RECT(int _left,int _top,int _right,int _bottom)
{
Left=_left;
Top=_top;
Right=_right;
Bottom=_bottom;
}
public int Left;
public int Top;
public int Right;
public int Bottom;
}
2.
共用体,共用体同样用
struct
定义,但
LayoutKind.Explicit
描述不能少,另外
FieldOffset
表示对齐
的位置。
[StructLayout(LayoutKind.Explicit)]
public struct Union
{
[FieldOffset(0)]
public int Number;
[FieldOffset(0)]
public char Chr0;
第一个字符
[FieldOffset(2)]
public int Chr2;
第三个字符
}
笔记!