Android aosp 中的 PACKED 关键字是啥意思?
Posted
技术标签:
【中文标题】Android aosp 中的 PACKED 关键字是啥意思?【英文标题】:What does the PACKED keyword mean in Android aosp?Android aosp 中的 PACKED 关键字是什么意思? 【发布时间】:2022-01-22 05:19:01 【问题描述】:当我在 android aosp 中阅读一些 C++ 代码时,我看到一些类是用 PACKED
关键字声明的。例如,在<android_source_root>/art/runtime/image.h
中,类ImageSection
是这样声明的:
class PACKED(4) ImageSection
public:
ImageSection() : offset_(0), size_(0)
ImageSection(uint32_t offset, uint32_t size) : offset_(offset), size_(size)
ImageSection(const ImageSection& section) = default;
ImageSection& operator=(const ImageSection& section) = default;
PACKED(4)
是什么意思?
【问题讨论】:
它与填充有关,请参见此处:***.com/a/11772340/10035556 【参考方案1】:定义在<android_source_root>/art/libartbase/base/macros.h
#define PACKED(x) __attribute__ ((__aligned__(x), __packed__))
【讨论】:
以上是关于Android aosp 中的 PACKED 关键字是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
docker中编译android aosp源码,出现Build sandboxing disabled due to nsjail error