为考虑ANSI C和VC的兼容,BYTE数据类型对应ANSI C的什么数据类型?比如VC中DCB的停止位是BYTE,
DCB.StopBits = STOPBITS_15,如何把这句话在ANSI C中实现,并可以实现DCB.StopBits = Ansi_c.Stopbits这样的赋值,当然最好不要强制类型转换

解决方案 »

  1.   

    BYTE应该是最不需要考虑转换的单位了吧,unsigned char
      

  2.   

    对,BYTE在C中是unsigned char这种类型
      

  3.   

    在DCB中,有这样的定义BYTE StopBit.同时,StopBit可以的取值比如可以是sp_StopBit10,sp_StopBit15。如果在ANSI C中实现,也许可以这么定义unsigned char StopBit.但如何在ANSI C中定义宏sp_StopBit10或sp_StopBit15呢,通过这个宏定义 ,可以直接引用如下DCB.StopBit = ANSI_C.Stopbit。试想,如果BYTE对应的是unsigned char,那么sp_StopBit10一定是个unsigned char,而停止位是有1.5这个设置的。现在要搞清的是,在VC中,是如何定义sp_StopBit10和sp_StopBit15这2个宏的,哪位帮我查一下
      

  4.   

    在DCB中,有这样的定义BYTE StopBit.同时,StopBit可以的取值比如可以是sp_StopBit10,sp_StopBit15。如果在ANSI C中实现,也许可以这么定义unsigned char StopBit.但如何在ANSI C中定义宏sp_StopBit10或sp_StopBit15呢,通过这个宏定义 ,可以直接引用如下DCB.StopBit = ANSI_C.Stopbit。试想,如果BYTE对应的是unsigned char,那么sp_StopBit10一定是个unsigned char,而停止位是有1.5这个设置的。现在要搞清的是,在VC中,是如何定义sp_StopBit10和sp_StopBit15这2个宏的,哪位帮我查一下
      

  5.   

    在WINBASE.H中去看吧,BYTE不是做UNSINGED CHAR定义的,实际上,在WINBASE中,各通信参数全部是用数值定义的