C中__typeof
时间: 2024-06-13 22:09:02 浏览: 106
__typeof__是GNU C的一个扩展,它可以返回一个表达式的类型。它的语法如下:
```c
__typeof__(expression)
```
其中expression是一个C表达式。__typeof__返回expression的类型。下面是一个例子:
```c
int a = 10;
__typeof__(a) b = a; // b的类型是int
```
在上面的例子中,__typeof__(a)返回int,因此b的类型也是int。
需要注意的是,__typeof__只是一个扩展,不是标准C的一部分。因此,如果你想编写可移植的代码,最好不要使用它。
相关问题
lvm2源码中# define __typeof__ typeof中的typeof是什么?
在LVM2源码中,`#define __typeof__ typeof`是一个宏定义,用于定义`__typeof__`为`typeof`的别名。
`typeof`是C语言的一个关键字,用于获取一个表达式的类型。它可以在编译时确定表达式的类型,并返回一个表示该类型的值。在LVM2源码中,`__typeof__`的目的是为了简化代码中对`typeof`的使用,使其更易读和易于理解。
相关问题:
1. C语言中的`typeof`关键字有什么作用?
2. `__typeof__`和`typeof`有什么区别?
3. 在C++中有类似的关键字吗?
ST __Typeof
根据提供的引用内容,我们可以了解到typeof是JavaScript中的一个一元运算符,用于获取一个变量的类型。而ST __Typeof则是在ST语言中用于获取变量类型的函数。
ST是一种结构化文本编程语言,常用于工业自动化领域。ST __Typeof函数可以用于获取变量的类型,其语法如下:
```
ST __Typeof(variable)
```
其中,variable为要获取类型的变量名或表达式。该函数返回一个字符串,表示变量的类型。常见的返回值包括:BOOL、BYTE、WORD、DWORD、INT、DINT、REAL等。
例如,我们可以使用ST __Typeof函数获取一个变量的类型,并将其输出:
```
a := 123;
b := REAL_TO_INT(1.23);
c := 'hello';
d := TRUE;
e := [1, 2, 3];
f := {name: 'Tom', age: 18};
// 获取变量类型并输出
PRINT(ST __Typeof(a)); // 输出:INT
PRINT(ST __Typeof(b)); // 输出:INT
PRINT(ST __Typeof(c)); // 输出:STRING
PRINT(ST __Typeof(d)); // 输出:BOOL
PRINT(ST __Typeof(e)); // 输出:ARRAY
PRINT(ST __Typeof(f)); // 输出:STRUCT
```