1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「C++」 vs. 「++C」

Posted at

C++のインクリメント(デクリメント)方式の話。
どちらを使ってもその後の動作が変わらない(どちらを使っても同じ。forループ内での使用のケースなどの)場合、前置(++C)と後置(C++)のどちらを使うのが望ましいか。

前置・後置の違い

前置(++x):新しい(すなわちインクリメント後の)xの値を返す。y=++xy=(x=x+1)と等価。
後置(x++):古い(すなわちインクリメント前の)xの値を返す。y=x++y=(t=x, x=x+1, t)と等価。

どちらを使うべきか

明確に後置(x++)を使いたい場合以外は、前置(++x)を使うのが望ましい。
前置・後置の違いで示した通り、後置の場合は一時オブジェクトを生成しているため、前置の場合よりもコストが余分にかかっている。

一般的な意見

『Google C++ Style Guide』や『Effective C++(スコット・メイヤーズ)』でも、前置インクリメントが推奨している。以下は『Google C++ Style Guide』からの抜粋。

コードにおいて、後置インクリメント(i++)・後置デクリメント(i--)の式の結果を明示的に必要とする場合を除き、常に前置インクリメント(++i)・前置デクリメント(--i)を使用してください。
https://ttsuki.github.io/styleguide/cppguide.ja.html#Preincrement_and_Predecrement

※以下の理由から、後置のほうが読みやすいと感じる人もいるようだ。同じく『Google C++ Style Guide』からの抜粋。

特にC言語での開発において、forループなどの式の結果が使われない場合でも、伝統的に、演算子を後置する形(i++)が使われてきました。 この形は、英文法の語順と同じ、主語(i)の後に動詞(++)が続く形をしているため、こちらの方が読みやすいと感じる人もいるでしょう。

おわり

「C++」は「++C」に改名しよう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?