• __attribute__


    GNU C的一大特色就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。
     
    关键字__attribute__ 也可以对结构体(struct )或共用体(union )进行属性设置。大致有六个参数值可以被设定,即:aligned, packed, transparent_union, unused, deprecated 和 may_alias 。
     
    1、aligned (alignment)
     
    该属性设定一个指定大小的对齐格式(以字节 为单位),例如:
    struct S {
      short b[3];
    } __attribute__ ((aligned (8)));
    typedef int int32_t __attribute__ ((aligned (8)));
    该声明将强制编译器确保(尽它所能)变量类 型为struct S 或者int32_t 的变量在分配空间时采用8 字节对齐方式。
     
    2、packed
    使用该属性对struct 或者union 类型进行定义,不使用内存对齐,packed_struct 类型的变量数组中的值将会紧紧的靠在一起,aligned 属性使被设置的对象占用更多的空间,相反的,使用packed 可以减小对象占用的空间。
     
    3、unused 
     使用该属性,表示可能用不到,函数参数中使用,表示参数可以不传,编译器也不会报错
     
     
     
    __attribute__ 可以对函数属性进行设置,有const,noreturn
     
    1、
    __attribute__((noreturn)) 表示函数可能没有返回值,编译器处理时,没有返回值也不会报错
     
     
  • 相关阅读:
    【Linux】sed笔记
    【Linux】nl笔记
    【Kubernetes】架构全图
    【Linux】tar压缩解压缩笔记
    【Docker】初识与应用场景认知
    【Ubuntu】16.04网卡信息配置
    常用枚举类
    mysql生成主键
    eclipse下mybatis-generator-config插件
    tomcat下载镜像地址
  • 原文地址:https://www.cnblogs.com/bizhu/p/4101195.html
Copyright © 2020-2023  润新知