gpt4 book ai didi

c - 为什么 GCC 定义一元运算符 '&&' 而不是仅仅使用 '&' ?

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

this question 中所述, GCC 定义了非标准的一元运算符 && 来获取标签的地址。

为什么它定义了一个新的运算符,而不是使用 & 运算符的现有语义,和/或函数的语义(其中 foo &foo 都产生函数 foo())?

的地址

最佳答案

标签名称不会干扰其他标识符,因为它们仅在 goto 中使用。一个变量和一个标签可以有相同的名字,在标准的 C 和 C++ 中,从上下文中它的意思总是很清楚的。所以这是完全有效的:

name:
int name;
name = 4; // refers to the variable
goto name; // refers to the label

因此需要 & 和 && 之间的区别,以便编译器知道期望的名称类型:

  &name; // refers to the variable
&&name; // refers to the label

关于c - 为什么 GCC 定义一元运算符 '&&' 而不是仅仅使用 '&' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29913583/

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