小编use*_*830的帖子

.NET中结构的大小

我的问题是在C语言程序和C#程序之间发送一个结构.

我用C#编写了一个结构:

public struct NetPoint {
    public float lat; // 4 bytes
    public float lon; // 4 bytes
    public int alt; // 4 bytes
    public long time; // 8 bytes
}
Run Code Online (Sandbox Code Playgroud)

结构的总大小必须是20个字节.

当我用sizeof()这种结构的C++ 做的时候,

System.Diagnostics.Debug.WriteLine(
    "SizeOf(NetPoint) = " +
    System.Runtime.InteropServices.Marshal.SizeOf(new NetPoint()));
Run Code Online (Sandbox Code Playgroud)

调试控制台显示:

SizeOf(NetPoint)= 24

但我预计会有20个字节.为什么我看到了区别?

.net interop struct

9
推荐指数
2
解决办法
629
查看次数

标签 统计

.net ×1

interop ×1

struct ×1