1)数据结构
C++结构体
typedef struct MyStruct
{
//C++ bool 1个字节
bool s1;
bool s2;
bool s3;
double v1;
int a;
int b;
int iResult;
char *name;
}
C#结构体
public struct MyStruct
{
[MarshalAs(UnmanagedType.I1)]//必须指定为1个字节,否则默认为4字节
public bool s1;
[MarshalAs(UnmanagedType.I1)]
public bool s2;
[MarshalAs(UnmanagedType.I1)]
public bool s3;
public double v1;
public int a;
public int b;
public int iResult;
[MarshalAs(UnmanagedType.LPStr)]
public string name;
};
本文对比了C++和C#中结构体的定义方式,并特别关注于布尔类型在不同语言中的内存占用差异。C++中通过typedef定义结构体,而C#则使用public struct,并需显式指定bool类型的大小。
11万+

被折叠的 条评论
为什么被折叠?



