可以给编译器优化时使用!!!gcc编译噢!
部分已经存在于最新的C99标准。
GNU C提供了零长度数组,复杂变量,内联函数,命名初始器等。
具体如下:
1. static inline
2. 务必内联 __attribute__ ((always_inline))
3. 禁止内联 __attribute__ ((noinline))
4. 纯函数 。。。 pure 如strlen,返回值必须有意义,非void
5. 常量函数 const 。。。。记不住
6. noreturn
7. malloc
8. warn_unused_result
9. deprecated
10. used
11. unused
12. packed
13. aligned(32),aligned
1. 分支注释 likely, unlikely
2. 将全局变量放入寄存器 , register 变量定义 asm("...")
3. 取得一个表达式的数据类型 typeof
4. case 一段范围, 如1 ... 10,需要有空格。
5. 取得函数的返回地址 __builtin_return_address
6 offsetof 结构中指定成员的偏移量
7. 数据类型的对齐边界 __alignof__((...))