码迷,mamicode.com
首页 > 其他好文 > 详细

__attribute__

时间:2018-05-05 13:22:50      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:不必要   取消   def   代码   bsp   att   AC   color   type   

__attribute__

1.__attribute__ ((attribute-list))

__attribute__关键字主要是用来在函数或数据声明中设置其属性。

给函数赋给属性的主要目的在于让编译器进行优化。

例如:函数声明中的__attribute__((noreturn)),就是告诉编译器这个函数不会返回给调用者,以便编译器在优化时去掉不必要的函数返回代码。

2. __attribute__ ((packed))

让编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,这样子两边都需要使用 __attribute__ ((packed))取消优化对齐,就不会出现对齐的错位现象。

 

#include <stdio.h>

typedef struct TEST
{
    char a;
    int b;
} test;


int main(void)
{
    printf("sizeof()=%d.\n",sizeof(test));
    return 0;
}

输出结果是:8

#include <stdio.h>

typedef struct TEST
{
    char a;
    int b;
}__attribute__((packed)) test;


int main(void)
{
    printf("sizeof()=%d.\n",sizeof(test));
    return 0;
}

输出结果:5

 

__attribute__

标签:不必要   取消   def   代码   bsp   att   AC   color   type   

原文地址:https://www.cnblogs.com/weiyouqing/p/8994377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!