c#中怎么使结构体的存储空间是连续的?

scoredhigh 2014-01-08 04:38:09
c#中怎么使结构体的存储空间是连续的?

比如结构体
struct lxyECG
{
public byte st;
public short st1;
public byte st2;
public byte st3;
}
因为结构体里有short类型,是双字节自动对齐的,成员st自动补齐一个字节,所以lxyECG存储空间大小为6个字节。我想使此结构体变为单字节对齐,在C#里要怎么做?
...全文
315 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
scoredhigh 2014-01-08
  • 打赏
  • 举报
回复
引用 1 楼 afandaafandaafanda 的回复:
使用C#使结构体单字节对齐的作用是?我考虑了下做起来还不是蛮方便呢,可能得调用win32 API,如果有其他解决办法,建议不用C#来实现。
主要是为了socket通信,从缓冲数组里面接收数据。 不过我已经解决了 将此句[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]放在结构体前面即可
feng1456 2014-01-08
  • 打赏
  • 举报
回复
使用C#使结构体单字节对齐的作用是?我考虑了下做起来还不是蛮方便呢,可能得调用win32 API,如果有其他解决办法,建议不用C#来实现。

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧