时间:2021-05-19
前言
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括号中也可以是函数
例:
int function(int, int); typeof(function(1. 2)) val;此时val的数据类型为 函数function(int, int)返回值的数据类型 ,即int类型。(注意: typeof并不会执行函数function)。
typeof关键字有点类似与c++中的decltype关键字。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typ
C++编程语言中有很多比较重要的关键字在实际编程中起着非常重要的作用。我们今天为大家介绍的C++explicit关键字就是其中一个应用比较频繁的关键字。下面就让
C++中保留了C语言的struct关键字,并且加以扩充。在C语言中,struct只能包含成员变量,不能包含成员函数。而在C++中,struct类似于class,
nullptr和null均是C语言中的数据类型,其主要区别有: 1、nullptr在C语言中一般为关键字,表示空指针,而NULL只是一个宏定义。 2、nul
想了解Java中static关键字的作用和用法详细介绍,请点击此处了解详情。在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条,分别是: