GNU C对C的语言的扩展,摘自robert love的linux systerm programming一书

可以给编译器优化时使用!!!gcc编译噢!

 

http://gcc.gnu.org/

 

部分已经存在于最新的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__((...))

 

你可能感兴趣的:(GNU C对C的语言的扩展,摘自robert love的linux systerm programming一书)