文章目录
一、__attribute__
关键字
-
__attribute__
关键字主要是用来在函数或数据声明中设置其属性。给函数设置属性的主要目的在于让编译器进行优化。如函数声明中添加
__attribute__((noreturn))
,就是告诉编译器这个函数不会返回给调用者,以便编译器在优化时去掉不必要的函数返回代码。 -
GNU C的一大特色就是
__attribute__
机制。__attribute__
可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。 -
__attribute__
书写特征是:__attribute__
前后都有两个下划线,并且后面会紧跟一对括弧,括弧里面是相应的__attribute__
参数。
__attribute__语法格式为:
__attribute__ ((attribute-list))
二、__attribute__((packed))
__attribute__ ((packed))
的作用是告诉编译器取消结构体在编译过程中的优化对齐,按照实际占用字节数进行对齐,这是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,