C语言 __attribute__
__attribute__
注意__是两个下划线
设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )
格式__attribute__ ((attribute-list))
attribute-list
aligned
指定对象的对齐格式(以字节为单位)
packed
该属性对struct 或者union 类型进行定义,设定其类型的每一个变量的内存约束
告诉编译器取消结构在编译过程中的优化对齐(使用1字节对齐)
at
绝对定位,可以把变量或函数绝对定位到Flash中,或者定位到RAM。
FLASH:u16 Flash[512] __attribute__((at(0x0800F000)));
RAM:u8 RAM[RAM_LEN] __attribute__ ((at(0X20001000)));
section
在ARM编译器编译之后,代码被划分为不同的段,
RO Section(ReadOnly)中存放代码段和常量,
RW Section(ReadWrite)中存放可读写静态变量和全局变量,
ZI Section(ZeroInit)是存放在RW段中初始化为0的变量。
可多个配合使用
u8 Addr[100] __attribute__ ((section ("RAM"), zero_init,aligned(4)));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)