本文主要是介绍C#中使用C++ struct位域的方法小结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
通过研习了“c++的位域该如何转换到C#中”http://topic.csdn.net/t/20030531/22/1860471.html的文章,也解决了自己想在C#上进行串口开发的问题,串口本身就被C#支持,主要问题就在于一些串口编程中需要使用位域,一些变量只占用1位,在上面的文章中提到:
TheAres(班门斧)回复于 2003-05-31 22:43:47 得分 70
用enum+FlagsAttribute来做
[Flags]
public enum ComStatFlags {
fCtsHold = 0x1, fDsrHold = 0x2, fRlsdHold = 0x4,
fXoffHold = 0x8, fXoffSent = 0x10, fEof = 0x20,
fTxim = 0x40
}
public strut COMSTAT {
public ComStatFlags flags;
public uint cbInQue;
public uint cbOutQue;
...
}
调用的时候是这样调用的:
如需要查看该帧中的fXoffSent
COMSTAT aframe;
val=aframe.flags&ComStatFlags.fXo
这篇关于C#中使用C++ struct位域的方法小结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!