gpt4 book ai didi

c - 什么是 C 中的 typeof((c) + 1)

转载 作者:太空狗 更新时间:2023-10-29 16:19:45 26 4
gpt4 key购买 nike

我在 C 中遇到了一个表达式,例如

typeof((c) + 1) _tmp = c;

这到底是什么意思?

感谢回复。

只有一个疑问?如果 c 的类型是 struct 而不是原始类型,那么 +1 会做什么?

最佳答案

普通 C(而非 C++)中的 typeof 运算符是 GCC 对标准的补充。它告诉编译器您要使用括号中表达式的类型。

使用 typeof 如上所述,您可以声明您或在该上下文中未知类型的变量,使用另一个变量的类型作为引用。也可用于类型转换。

typeof 中的+ 操作有一个特殊的效果。 typeof((c) + 1) 表示“c 的类型或 1 的类型,以提升后保留的那个为准”。请记住,例如,当用于涉及整数的操作时,字符会被提升为整数,整数会被提升为 float , float 会被提升为 double ,等等。

因此,typeof(int_variable + char_variable)int,因为 char 将被提升为 int执行操作。

请注意,只有编译器可以解决这个问题:typeof 不求值,它没有值,在运行时什么也不会发生。

typeof 的完整描述可以是found here .

关于c - 什么是 C 中的 typeof((c) + 1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4436889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com