指引网

当前位置: 主页 > 编程开发 > C >

浅析C语言中typeof关键字用法

来源:网络 作者:佚名 点击: 时间:2017-07-19 22:54
[摘要]  小编给大家推荐的这篇文章介绍了浅析C语言中typeof关键字用法,非常实用,有兴趣的同学快来看看吧

C语言中 typeof 关键字是用来定义变量数据类型的。在linux内核源代码中广泛使用。

下面是Linux内核源代码中一个关于typeof实例:

 

 代码如下复制代码

#define min(x, y) ({        \

  typeof(x) _min1 = (x);     \

  typeof(y) _min2 = (y);     \

  (void) (&_min1 == &_min2);   \

  _min1 < _min2 ? _min1 : _min2; })

 

1.当x的类型为是 int 时 _min1变量的数据类型则为 int。

2.当x为一个表达式时(例: x = 3-4), _min1变量的数据类型为这个表达式结果的数据类型。
.......

3.typeof括号中也可以是函数

    例:

 

 代码如下复制代码

intfunction(int,int);

 typeof(function(1. 2)) val;

 

    此时val的数据类型为 函数function(int, int)返回值的数据类型    ,即int类型。(注意: typeof并不会执行函数function)。

typeof关键字有点类似与c++中的decltype关键字。

------分隔线----------------------------