你使用哪些C ++逻辑运算符:和,或者不是和类型的运算符?为什么?

时间:2009-11-09 21:31:21

标签: c++ operators survey

标题中隐含的休闲/好奇心问题。

我个人更喜欢新操作符,以便在我看来使代码更具可读性。

哪些人自己使用?你选择一个而不是另一个的原因是什么?

同样,Emacs以不同的方式突出显示这些运算符,因此在查看屏幕时我获得了更多的视觉反馈。我知道旧操作符也可以突出显示,但ISO646默认突出显示

6 个答案:

答案 0 :(得分:11)

我认为我甚至没有 看到 实际使用字母操作符的C / C ++源代码。对我来说,它看起来很奇怪;非常非C-ish。

答案 1 :(得分:9)

我更喜欢使用not代替!,因为它更具可读性:

if (not condition()) {
}

if (!condition()) {
}

!那种迷失在那里。当然,在编写可移植的代码时,必须避免(或#define d)。

但是,andor对我没有太大作用,所以我不使用它们。

答案 2 :(得分:8)

我不会使用替代操作符,因为在我看来它们会引起更多的混淆然后清晰 如果我看到一个按字母顺序排列的名称,我希望有一个命名空间,类,变量,函数或函数样式操作符 - 常见的操作符可以直观地将它划分为序列。替代风格对我来说不适合C / C ++世界。

此外,虽然Greg对于C或C ++新手有一点意见,但你很快就会习惯它 - 我在任何地方发现!都没有问题。

答案 3 :(得分:3)

您指的是来自iso646.h的替代令牌吗?

他们来自C,这是非常罕见的,因此大多数人可能不太可读。我敢肯定,如果我们用这些关键词“提升”它们会更常见,因为它们更像英语。

然后,&&让非英语人士用他们的母语说“和”。 (并不是说这首先是关键词中的一个问题。)

答案 4 :(得分:2)

我用旧的。

原因:我在Perl中编码了一段时间,并且运算符具有不同的优先级,具体取决于它们是否是拼写的变体。由于这个原因,我遇到了几个错误,从那时起,我总是使用&&||!覆盖任何包含它们的语言的拼写变体。

答案 5 :(得分:1)

逻辑(而不仅仅是逻辑)运算符的备用标记,如andornot等,与C ++无关。他们几乎从一开始就存在于C语言中。如果您希望在代码中使用它们,您可以自由地使用它们,但如果人们认为这种做法相当不正统,也不要感到惊讶。通常,人们在C和C ++代码中对这些运算符使用传统的指示符(例如&&||等)。