我有一个struct类型和一个定义如下的变量:
typedef struct test
{
uint8_t a;
uint8_t b;
uint8_t c;
} test_type;
test_type x[2];
这是否使这个变量的行为像一个二维变量?我的意思是,当我调用x时,它会返回具有上面定义的结构的第一个变量的test_type地址吗?
发布于 2018-07-26 03:34:50
如果是一个二维数组,即a,b,c将彼此存储在内存中,那么结构的内存布局将是相同的,但是您需要注意编译器不会在它们之间插入填充。一个真正的二维没有这个问题。
编译器通常将结构成员对齐到自然地址边界,因此根据您的变量在结构中的大小,它可以在结构中的字段之间插入额外的字节。
https://stackoverflow.com/questions/51530344
复制相似问题