__attribute__ 是GNU C的特色之一,attribute可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute)等.

函数属性(Function Attribute)

  • noreturn
  • noinline
  • always_inline
  • pure
  • const
  • nothrow
  • sentinel
  • format
  • format_arg
  • no_instrument_function
  • section
  • constructor
  • destructor
  • used
  • unused
  • deprecated
  • weak
  • malloc
  • alias
  • warn_unused_result
  • nonnull

类型属性(Type Attributes)

  • aligned
  • packed
  • transparent_union,
  • unused,
  • deprecated
  • may_alias

变量属性(Variable Attribute)

  • aligned
  • packed

Clang特有的

  • availability
  • overloadable

书写格式:attribute后面会紧跟一对原括弧,括弧里面是相应的attribute参数

__attribute__(xxx)

常见的系统用法:

noreturn

官方例子: abort() 和 exit()

该属性通知编译器函数从不返回值。当遇到类似函数还未运行到return语句就需要退出来的情况,该属性可以避免出现错误信息。

转载于:https://www.cnblogs.com/sichenzhao/p/9320184.html

GNU __attribute__ 总结相关推荐

  1. [zz]GNU C __attribute__ 机制简介

    GNU C的一大特色(却不被初学者所知)就是__attribute__机制.__attribute__可以设置函数属性(Function Attribute).变量属性(Variable Attrib ...

  2. @清晰掉 GNU C __attribute__

    __attribute__((packed))详解 1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有 ...

  3. GNU C __attribute__ 机制简介

    原文链接:http://afreez.blog.51cto.com/59057/7351 摘要: 在学习linux内核代码及一些开源软件的源码(如:DirectFB),经常可以看到有关__attrib ...

  4. GNU C - Using GNU GCC __attribute__ mechanism 01 Function Attribute

    近来阅读glibc源码的时候遇到很多关于__attribute__的问题,索性就查找了相关的资料,学习了一下. 要是不解决了这个问题,有的时候还真的是比较难下手.就拿glibc来说,使用xcscope ...

  5. GNU C之__attribute__

    __attribute__可以设置函数属性(Function Attribute).变量属性(Variable Attribute)和类型属性(Type Attribute) __attribute_ ...

  6. GNU AWK中BEGIN/END使用举例

    以下是使用gnu awk将test.cpp文件拆分成两个文件a.cpp和b.cpp,其中b.cpp仅存放test.cpp中的数据,其它内容存放在a.cpp文件中. test.cpp内容如下: #inc ...

  7. Linux下__attribute__((visibility (default)))的使用

    在Linux下动态库(.so)中,通过GCC的C++ visibility属性可以控制共享文件导出符号.在GCC 4.0及以上版本中,有个visibility属性,可见属性可以应用到函数.变量.模板以 ...

  8. __attribute__ ((packed))

    1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法.这个功能是跟操作系统没关系,跟编译器有关,g ...

  9. __attribute__ 总结

    attribute是GNU C特色之一,在iOS用的比较广泛.系统中有许多地方使用到. attribute可以设置函数属性(Function Attribute ).变量属性(Variable Att ...

  10. linux标准c和c编译器6,linux内核中GNU C和标准C的区别

    linux内核中GNU C和标准C的区别 今天看了一下午的linux内核编程方面的内容,发现linux 内核中GNU C与标准C有一些差别,特记录如下: linux 系统上可用的C编译器是GNU C编 ...

最新文章

  1. 利用WebClient发送一个简单的HTTP GET请求并且取回响应
  2. java垃圾回收算法超详细全解
  3. BZOJ4557:[JLOI2016/SHOI2016]侦察守卫——题解
  4. 程序员薪酬报告:过去1年大数据领域薪资有多高?
  5. 企业信息化管理软件,如何走出开发困境
  6. 花呗问答匹配(part3 各种模型运行)
  7. 测试用例设计方法---场景法
  8. 正确理解文件与目录的可读、可写、可执行权限
  9. oa系统客户端服务器ip端口,致远oa客户端服务器ip
  10. JBX IDE中文输入
  11. Vue项目实战:订单列表页面实现
  12. 全球及中国智能手机过滤器行业销售动态及投资盈利预测报告(2022-2027)
  13. 基于k-近邻算法的室内WiFi位置指纹定位实验报告
  14. GNS3实验操作(三)
  15. 6.cisco思科模拟器子网划分练习题
  16. android动画制作工具,一款非常好用的动画库Lottie
  17. 【word2vec】算法原理 公式推导
  18. 微软三维人脸重建论文总结——《Accurate 3D Face Reconstruction with Weakly-Supervised Learning》
  19. rj45管脚定义_以太网接口rj45引脚定义图
  20. App启动图片变形,拉伸

热门文章

  1. 关于禁止ViewPager预加载问题【转】
  2. 又拍云引领云CDN加速 或成互联网刚性需求
  3. eclipse jee 和 myeclipse web项目的转换
  4. Hive内部表外部表转化分析(装)
  5. How to recover deleted data from SQL Server
  6. Inside Google’s language detection tool
  7. 三转CHM文件故障解决
  8. linux内核之同步
  9. 网路收报流程-网桥的处理流程(br网桥)(四)
  10. html给td内容加删除线,【原创】tr上加删除线-且满足一个页面多表格