文章目录
一、__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编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:
在TC下:struct my{ char ch; int a;} sizeof(int)=2;sizeof(my)=3;(紧凑模式)

1008

被折叠的 条评论
为什么被折叠?



