C++ De http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.structlayoutattribute(VS.71).aspx:Pourquoi cet échantillon de StructLayout .NET pour
[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;
};
que j'imagine cela, ou sont les éléments entre crochets ne concordent pas avec la syntaxe C++? Pourquoi ne pas faire tout cela quand C++ fournit les outils adéquats pour spécifier la structure dans la définition standard de la langue (et peut-être avec le #pragma pack()) généralement supporté. La compatibilité prévue dans la langue ne garantit-elle pas que vous pouvez définir en C++ toute structure que vous pouvez définir en C? Je comprends la nécessité d'être en mesure de décrire explicitement la mise en page d'une struct C dans d'autres langues, mais il semble que ce ne serait pas nécessaire avec C++ qui fournit
extern "C" { }