发布
社区首页 >问答首页 >结构类型的一维变量在C中是否变成二维变量?

结构类型的一维变量在C中是否变成二维变量?
EN

Stack Overflow用户
提问于 2018-07-26 02:56:43
回答 1查看 78关注 0票数 0

我有一个struct类型和一个定义如下的变量:

代码语言:javascript
代码运行次数:0
复制
typedef struct test
{
    uint8_t            a;        
    uint8_t            b;            
    uint8_t            c;            
} test_type;


test_type x[2];

这是否使这个变量的行为像一个二维变量?我的意思是,当我调用x时,它会返回具有上面定义的结构的第一个变量的test_type地址吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-26 03:34:50

如果是一个二维数组,即a,b,c将彼此存储在内存中,那么结构的内存布局将是相同的,但是您需要注意编译器不会在它们之间插入填充。一个真正的二维没有这个问题。

编译器通常将结构成员对齐到自然地址边界,因此根据您的变量在结构中的大小,它可以在结构中的字段之间插入额外的字节。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51530344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档