【发布时间】:2009-03-23 16:43:21
【问题描述】:
[C++]
[StructLayout(LayoutKind::Explicit, Size=16, CharSet=CharSet::Ansi)]
__value class MySystemTime {
public:
[FieldOffset(0)] short int wYear;
[FieldOffset(2)] short int wMonth;
[FieldOffset(4)] short int wDayOfWeek;
[FieldOffset(6)] short int wDay;
[FieldOffset(8)] short int wHour;
[FieldOffset(10)] short int wMinute;
[FieldOffset(12)] short int wSecond;
[FieldOffset(14)] short int wMilliseconds;
};
这是我的想象,还是方括号中的元素与 C++ 语法不一致?
当 C++ 提供了足够的工具来在语言的标准定义中指定结构布局时(也许还有通常支持的 #pragma pack() ),为什么还要麻烦做所有这些。语言中设计的兼容性不能保证您可以在 C++ 中定义任何可以在 C 中定义的结构吗?我理解需要能够用其他语言显式描述 C 结构的布局,但似乎没有必要使用 C++ 提供
extern "C" { }
【问题讨论】: