如何使用alignement option = 1byte对齐结构成员?

时间:2016-11-24 22:40:46

标签: c struct unions

我是c语言的新手。我想知道如何使用1字节选项对齐结构的成员。有三种结构。我想保存从文件中的结构创建的对象。我将欣赏任何答案可以帮帮我。我在这里发布了代码。谢谢大家!

    struct AddressTmpl
{
   char sStreet[51];
   char sCity[51];
   char sCountry[51];
};

enum Gender
{
   Male     = 1,
   Female   = 2
};

struct PersonTmpl
{
   int nPersonID;

   char chRecordType;
#define REC_TYPE_PERSONAL  1
#define REC_TYPE_HOME      2
#define REC_TYPE_WORK      3

   union
   {
      struct /* record type 1 */
      {
         char sFirstName[31];
         char sLastName[32];
         char sBirthdate[11]; /* YYYY/MM/DD date format */
         Gender theGender;
      }PersonalInfo;

      struct /* record type 2 */
      {
         struct AddressTmpl homeAddress;
         char sPhone[31];
         char sEmail[51];
      }HomeDetails;

      struct /* record type 3 */
      {
         char sCompany[51];
         struct AddressTmpl workAddress;
         char sPhone[31];
         char sFax[31];
         char sEmail[51];
      }WorkDetails;
   }Details;
};

0 个答案:

没有答案