gcc buildin特性

以下都是搜集自网络,作为笔记参考

1. 使用typedof构建一个泛型宏

typedof    获取一个变量的类型

#define min(x, y)   ({typedof(x) _min1 = (x)})        //_min1

2.在case中语句中使用范围

switch(major)

{

case 0:

break;

case 1 ... 7:

break;

case 9 ... 30:

break;

default:

printf("error !");

break;

}

3. 数组初始化

array[ ] = {[0...9] = 1, [10...99] = 2};

4.0长度数组

可以在结构的末尾声明一个没有成员的数组

struct   iso{

size_t data_size;

int  data[0];

};

5.判断调用地址

void * __builtin_return_address(unsigned int level);

定义希望获取返回地址的调用堆栈级别, level = 0 请求当前函数的返回地址。level = 1,请求进行调用的函数的返回地址。


6.函数属性定义

#define __inline__ __inline__ __attribute__(always_inline)


你可能感兴趣的:(gcc buildin特性)