GNU __attribute__ 总结
__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__ 总结相关推荐
- [zz]GNU C __attribute__ 机制简介
GNU C的一大特色(却不被初学者所知)就是__attribute__机制.__attribute__可以设置函数属性(Function Attribute).变量属性(Variable Attrib ...
- @清晰掉 GNU C __attribute__
__attribute__((packed))详解 1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有 ...
- GNU C __attribute__ 机制简介
原文链接:http://afreez.blog.51cto.com/59057/7351 摘要: 在学习linux内核代码及一些开源软件的源码(如:DirectFB),经常可以看到有关__attrib ...
- GNU C - Using GNU GCC __attribute__ mechanism 01 Function Attribute
近来阅读glibc源码的时候遇到很多关于__attribute__的问题,索性就查找了相关的资料,学习了一下. 要是不解决了这个问题,有的时候还真的是比较难下手.就拿glibc来说,使用xcscope ...
- GNU C之__attribute__
__attribute__可以设置函数属性(Function Attribute).变量属性(Variable Attribute)和类型属性(Type Attribute) __attribute_ ...
- GNU AWK中BEGIN/END使用举例
以下是使用gnu awk将test.cpp文件拆分成两个文件a.cpp和b.cpp,其中b.cpp仅存放test.cpp中的数据,其它内容存放在a.cpp文件中. test.cpp内容如下: #inc ...
- Linux下__attribute__((visibility (default)))的使用
在Linux下动态库(.so)中,通过GCC的C++ visibility属性可以控制共享文件导出符号.在GCC 4.0及以上版本中,有个visibility属性,可见属性可以应用到函数.变量.模板以 ...
- __attribute__ ((packed))
1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法.这个功能是跟操作系统没关系,跟编译器有关,g ...
- __attribute__ 总结
attribute是GNU C特色之一,在iOS用的比较广泛.系统中有许多地方使用到. attribute可以设置函数属性(Function Attribute ).变量属性(Variable Att ...
- linux标准c和c编译器6,linux内核中GNU C和标准C的区别
linux内核中GNU C和标准C的区别 今天看了一下午的linux内核编程方面的内容,发现linux 内核中GNU C与标准C有一些差别,特记录如下: linux 系统上可用的C编译器是GNU C编 ...
最新文章
- 利用WebClient发送一个简单的HTTP GET请求并且取回响应
- java垃圾回收算法超详细全解
- BZOJ4557:[JLOI2016/SHOI2016]侦察守卫——题解
- 程序员薪酬报告:过去1年大数据领域薪资有多高?
- 企业信息化管理软件,如何走出开发困境
- 花呗问答匹配(part3 各种模型运行)
- 测试用例设计方法---场景法
- 正确理解文件与目录的可读、可写、可执行权限
- oa系统客户端服务器ip端口,致远oa客户端服务器ip
- JBX IDE中文输入
- Vue项目实战:订单列表页面实现
- 全球及中国智能手机过滤器行业销售动态及投资盈利预测报告(2022-2027)
- 基于k-近邻算法的室内WiFi位置指纹定位实验报告
- GNS3实验操作(三)
- 6.cisco思科模拟器子网划分练习题
- android动画制作工具,一款非常好用的动画库Lottie
- 【word2vec】算法原理 公式推导
- 微软三维人脸重建论文总结——《Accurate 3D Face Reconstruction with Weakly-Supervised Learning》
- rj45管脚定义_以太网接口rj45引脚定义图
- App启动图片变形,拉伸