我有一个名为FOO的结构版本,因此我们有FOO_V0
,FOO_V1
和FOO_V2
。这是传统架构,所以我目前无权改变它。但是,我想看看是否可以插入一些编译时检查,例如static_assert
,以确保FOO_V0 + d
是F00_V1
而FOO_V1 + e
是FOO_V2
所以诚信有点强制执行。那可能吗?任何反馈意见的TIA!
typedef struct FOO_V0
{
UINT a;
BOOL b;
LARGE_INTEGER c;
} FOO_V0;
typedef struct FOO_V1
{
UINT a;
BOOL b;
LARGE_INTEGER c;
UINT d;
} FOO_V1;
typedef struct FOO_V2
{
UINT a;
BOOL b;
LARGE_INTEGER c;
UINT d;
BOOL e;
} FOO_V2;
感谢。