gcc支持的优化属性(__attribute__)
时间: 2023-11-22 18:31:27 浏览: 105
gcc支持很多用于优化的属性(__attribute__),以下是其中一些常见的:
1. `__attribute__((pure))`: 声明函数没有任何副作用,即函数只依赖于它的输入参数,不会修改任何全局变量或静态变量。
2. `__attribute__((const))`: 声明函数没有任何副作用,并且函数的返回值只依赖于它的输入参数,不会受任何全局变量或静态变量的影响。
3. `__attribute__((noreturn))`: 声明函数不会返回,例如在函数内部调用了exit(),abort()等函数。
4. `__attribute__((deprecated))`: 声明函数或变量已经被弃用,不推荐使用。
5. `__attribute__((aligned(n)))`: 声明变量的内存对齐方式,n表示对齐字节数。
6. `__attribute__((optimize("O0/O1/O2/O3")))`: 声明函数的优化级别,O0表示不优化,O1表示优化速度,O2表示平衡性能和大小,O3表示优化大小。
7. `__attribute__((packed))`: 声明结构体或联合体的内存对齐方式为紧凑模式,即不填充字节。
8. `__attribute__((visibility("default/hidden/internal")))`: 声明符号的可见性,default表示符号可见,hidden表示符号不可见,internal表示符号只在当前模块内可见。
9. `__attribute__((format(printf, x, y)))`: 声明函数参数的格式化输出方式,x表示参数从第几个开始,y表示参数的总数。
10. `__attribute__((unused))`: 声明变量或函数未被使用,但是不产生警告。
以上是一些常见的gcc支持的优化属性(__attribute__),还有其他更多的属性可以根据需要使用。
阅读全文