【发布时间】:2011-01-28 17:03:14
【问题描述】:
我最近遇到这个问题:如何减少这个表达式:s>73?61:60;。
给出的提示是,我们可以使用简单的比较来代替条件运算符,这样可以正常工作。
我不确定,但我认为可以使用一些 GCC 扩展,尽管我自己无法弄清楚。
编辑:整个表达式是这样的:s-=s>73?61:60
【问题讨论】:
-
你不想为面试时问这类问题的人工作。
-
正确答案是“去别的地方面试,问一些有价值的问题”
-
@AraK,只有那些不了解工作面试的人。
-
@AraK: 是的,有些面试官完全被自己的智慧惊呆了,他们告诉自己,他们只希望雇佣足够聪明的人来回答他们晦涩无用的琐事问题,但实际上他们只是想给可怜的受访者留下多么聪明的印象
-
仅供参考:在 x86-64 上使用 -O3 在 gcc 4.2.1 中编译 Carl 的答案和三元运算符,两者都得到相同的程序集。没有 -O3 (因此正常运行),卡尔的答案会变小。但是,为什么要发布不是 -O3 的版本,尤其是在速度是问题的情况下?
标签: c++ c conditional-operator