IEEE1588-2008 Windows下调试软件开发逐进 2
为了在代码中统一使用PTP的数据类型(UInterger32、UInteger48之类),于是引入了文件datatypes_dep.h,在其中将uchar_t、uint32_t等数据类型映射为UInteger8、UInteger32等,这样在datatypes.h中,应该直接使用PTP数据类型,杜绝使用非PTP数据类型。
引入datatypes_dep.h的更多解释是,不同的操作系统版本、或平台,有各自不同的数据类型集,例如在winsock2中定义了u_char、u_short之类,如果不能使用winsock2,就不能使用它定义的数据类型集了。也就是说这是一个对外界有依赖的地方,那么将其作为X_dep.h/cpp文件,便于移植。
IEEE1588-2008与IEEE1588-2002的一个区别是,前者引入了一些新的数据结构,例如Enumeration4、UInteger48等,包含4-bits、48-bits等非常规数据类型,在数据结构定义的时候需要用到一些特殊的语法,例如:
1: typedef struct {
2: UInteger8 messageType:4, transportSpecific:4;; /*uses bit 0~3, bit 4~7 is transportSpecific*/
3: ......
4: };