#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define UINT32 unsigned int
#define UINT16 unsigned short
#define UINT8 unsigned char
#define BOOL unsigned char
//字节类型枚举
enum Type
{
CHAR = 0, // 1字节
SHORT, // 2字节
INT, // 4字节
DOUBLE, // 8字节
};
//结构体开始
void StartStruct()
{
}
//添加类型
UINT32 AddType(enum Type type)
{
}
//添加数组
UINT32 AddArray(enum Type type, UINT32 num)
{
}
//结构体嵌套开始
void BeginNestStruct()
{
}
//结构体嵌套结束
void EndNestStruct()
{
}
//结构体结束,返回结构体大小
UINT32 FinishStruct(UINT32 *size)
{
}
struct A
{
UINT8 a;
UINT32 b;
UINT16 c;
UINT32 d[3];
};
struct B
{
double a;
UINT8 b;
A d;
UINT16 c;
};
struct C
{
UINT8 a;
UINT16 b;
B c;
};
int main()
{
UINT32 size = 0;
StartStruct();
AddType(CHAR);
AddType(SHORT);
BeginNestStruct();
AddType(DOUBLE);
AddType(CHAR);
BeginNestStruct();
AddType(CHAR);
AddType(INT);
AddType(SHORT);
AddArray(INT,3);
EndNestStruct();
AddType(SHORT);
EndNestStruct();
FinishStruct(&size);
(size == sizeof(struct C)) ? printf("OK!!!!!!!!!\n") : printf("result must be %d\n",sizeof(struct C));
return 0;
}
#include <stdlib.h>
#include <string.h>
#define UINT32 unsigned int
#define UINT16 unsigned short
#define UINT8 unsigned char
#define BOOL unsigned char
//字节类型枚举
enum Type
{
CHAR = 0, // 1字节
SHORT, // 2字节
INT, // 4字节
DOUBLE, // 8字节
};
//结构体开始
void StartStruct()
{
}
//添加类型
UINT32 AddType(enum Type type)
{
}
//添加数组
UINT32 AddArray(enum Type type, UINT32 num)
{
}
//结构体嵌套开始
void BeginNestStruct()
{
}
//结构体嵌套结束
void EndNestStruct()
{
}
//结构体结束,返回结构体大小
UINT32 FinishStruct(UINT32 *size)
{
}
struct A
{
UINT8 a;
UINT32 b;
UINT16 c;
UINT32 d[3];
};
struct B
{
double a;
UINT8 b;
A d;
UINT16 c;
};
struct C
{
UINT8 a;
UINT16 b;
B c;
};
int main()
{
UINT32 size = 0;
StartStruct();
AddType(CHAR);
AddType(SHORT);
BeginNestStruct();
AddType(DOUBLE);
AddType(CHAR);
BeginNestStruct();
AddType(CHAR);
AddType(INT);
AddType(SHORT);
AddArray(INT,3);
EndNestStruct();
AddType(SHORT);
EndNestStruct();
FinishStruct(&size);
(size == sizeof(struct C)) ? printf("OK!!!!!!!!!\n") : printf("result must be %d\n",sizeof(struct C));
return 0;
}