跳到主要内容

typeof 和 __typeof,typeof 的区别?

参考答案:

在C和C++编程语言中,typeof__typeof__通常用于获取表达式的类型。这两个关键字在功能上实际上是相同的,但它们的来源和可用性可能因编译器和语境的不同而有所差异。

  1. typeof:

    • 在GNU C中,typeof是一个内置的关键字,用于获取表达式的类型。
    • 它不是C语言标准的一部分,但在GNU C编译器(如GCC)中可用。
    • 使用typeof,你可以编写更通用的代码,因为它允许你根据表达式的类型进行操作。
  2. __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更强大的功能,特别是在处理复杂表达式和引用时。