>?= 运算符是啥意思?

Posted

技术标签:

【中文标题】>?= 运算符是啥意思?【英文标题】:What does the >?= operator mean?>?= 运算符是什么意思? 【发布时间】:2011-07-09 03:35:21 【问题描述】:

浏览这个 C++ BigInt 库并找到 BigInt.cpp 文件。顶部有一条关于兼容性的评论:

这个类是为 g++ 编译器编写的,并使用了一些 g++ 扩展(如“long double”和 ">?=" 运算符)。

>?= 运算符是做什么的?我在其他任何地方都找不到对它的引用。

【问题讨论】:

long double 不是 g++ 扩展... 【参考方案1】:

这是 GCC 4.2 及更高版本中删除的 GCC 扩展。

a >?= b 的等价物是a = max(a,b);

还有一个非常相似的运算符a <?= b,意思和a = min(a, b);一样。

【讨论】:

【参考方案2】:

见C extension: <? and >? operators

这是 max-then-assign 运算符:取左侧和右侧中较大的一个,然后将其塞回左侧。

它已从 g++ 中删除,应替换为 max(或 min 替换为 &lt;?=

【讨论】:

【参考方案3】:

This page 描述 &gt;? 是“最大值”运算符,它返回两个数字参数中的最大值。我猜&gt;?= 将其与赋值相结合,如果右侧值较大,大概是通过分配给左侧操作数。

【讨论】:

提姆,听起来很有道理 - 因此很可能+1 :) 他们将&gt;? 用作最大值运算符是有道理的,因为可以像这样在常规 C++ 中计算最大值:max = lhs &gt; rhs ? lhs : rhs 编译器特定的语言扩展?!我以为只有 MS 傻到可以做到这一点。嘘!嘶嘶声! @David:还有__attribute__。但当然,有些扩展比其他扩展更令人讨厌。 &gt;?= 真的很恶心!

以上是关于>?= 运算符是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

这个 JavaScript 运算符是啥意思? >>> [重复]

我的代码中“不匹配'运算符>>'”是啥意思?

=> 在 oracle pl sql.is 和调用运算符中是啥意思?

c++程序中->second 是啥意思

C语言左位移运算符和右位移运算符是啥意思,怎么运算,举个例子..

C语言中num/=10是啥意思