首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >__packed属性在函数参数中的用法是什么?

__packed属性在函数参数中的用法是什么?
EN

Stack Overflow用户
提问于 2015-01-28 07:05:59
回答 1查看 1.2K关注 0票数 3
代码语言:javascript
复制
int readint(__packed int *data)
{
    return *data;
}

为了避免填充,我在__packed声明中看到了struct属性。但是,在函数参数中使用__packed属性的好处是什么。

作者说,他已经使用__packed告诉编译器,整数可能无法对齐。这意味着什么?

编辑:将与gcc编译器一起工作

代码语言:javascript
复制
int readint(__attribute__((packed)) int *data)
{
    return *data;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-28 07:15:32

__packed限定符是ARM发布的armcc C编译器特有的编译器特性.他们的文件中有一个完整的解释。,但是简单地说,它表明不应该将用于对齐的填充插入到限定对象中,并且应该访问带有该限定符的指针,就好像它们可能被错对齐一样。(这可能会导致为某些处理器生成较慢的代码,因此不应该无偿使用它。)

请注意,这与GCC packed属性不同,后者仅适用于structunion类型定义。

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

https://stackoverflow.com/questions/28186492

复制
相关文章

相似问题

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