让我们考虑一下我已经定义了一个内存区域,例如(注意:uint8
表示unsigned char
):
uint8 myMemoryArea[1024];
我有一个像这样的结构:
typedef struct
{
uint8 * ptrToMyVar;
uint8 otherVar;
} myStruct_type;
我想将其视为myMemoryArea
一个数组myStruct_type
,因此我想对内存区域执行随机访问,例如:
myStruct_type * myPtrToStruct = (* myStruct_type)(&(myMemoryArea[ELEMENT_TO_ACCESS * sizeof(myStruct_type)]));
myPtrToStruct->otherVar = 2;
这台机器独立代码吗?我应该期待对齐或填充的麻烦吗?我猜只要我使用sizeof
.
我是否应该确保myMemoryArea
从可被整除的地址开始sizeof(* char)
- 也许将其定义为指针数组?