typeof 和 __typeof,typeof 的区别?
参考答案:
在C和C++编程语言中,typeof
和__typeof__
通常用于获取表达式的类型。这两个关键字在功能上实际上是相同的,但它们的来源和可用性可能因编译器和语境的不同而有所差异。
-
typeof
:- 在GNU C中,
typeof
是一个内置的关键字,用于获取表达式的类型。 - 它不是C语言标准的一部分,但在GNU C编译器(如GCC)中可用。
- 使用
typeof
,你可以编写更通用的代码,因为它允许你根据表达式的类型进行操作。
- 在GNU C中,
-
__typeof__
:__typeof__
是typeof
的一个同义词,主要在早期的GNU C编译器中使用。- 它的双下划线前缀表明它可能是一个编译器特定的扩展,而不是标准C语言的一部分。
- 在现代的GNU C编译器中,
typeof
和__typeof__
通常可以互换使用,但建议使用typeof
,因为它更简洁,并且在GNU C文档中更常用。
关于typeof
和__typeof__
的区别:
在功能上,typeof
和__typeof__
没有区别。它们都是用于获取表达式类型的。主要的区别在于它们的命名和可能的编译器支持。typeof
通常被推荐用于新的代码,因为它更简洁,并且更容易被理解。然而,如果你在处理旧代码或特定的编译器环境,你可能会遇到__typeof__
。
注意:C++标准库中没有typeof
或__typeof__
这样的关键字。在C++中,你可以使用decltype
来获取表达式的类型,这是C++11标准引入的一个特性。decltype
提供了比typeof
更强大的功能,特别是在处理复杂表达式和引用时。