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 关键字是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

Android 定位模式,无 GPS,AOSP 中的选项

docker中编译android aosp源码,出现Build sandboxing disabled due to nsjail error

AOSP中的HLS协议解析

构建Android AOSP时遇到“错误:多个字段具有相同的columnName”

将外部JAR添加到Android AOSP构建时出错

android studio 怎么导入aosp launcher