typeof用法总结

本文深入探讨了C语言中typeof关键字的使用方法及其特性。详细解释了当typeof参数为变量或表达式时,如何确定其数据类型;以及当参数为函数时,如何获取函数返回值的类型。通过具体示例,帮助读者理解typeof与C++中decltype关键字的相似之处。

1 .typeof 参数是变量或表达式

#define min(x, y) ({        \
  typeof(x) _min1 = (x);     \
  typeof(y) _min2 = (y);     \
  (void) (&_min1 == &_min2);   \
  _min1 < _min2 ? _min1 : _min2; })

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

2 .typeof 参数是函数

int function(int, int);
 typeof(function(1. 2)) val;

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值