コードの簡略化

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
KRNKRS
記事: 40
登録日時: 10年前
連絡を取る:

コードの簡略化

#1

投稿記事 by KRNKRS » 10年前

こんにちは、KRNKRSと申します。

さっそくで申し訳ないのですが、C++(DXライブラリ含む)のソースコードを短く描くような構文が知りたいです。
なぜなのかというと、最近、if文を、

コード:

//仮適当コード
if(a == 1){
   x = 0;
}else{
   x = 1;
}
と今まで書いていたのが、

コード:

 x = a==1 ? 0 : 1;
と書けば一行で済むという方法を知ったからです。
それからというもの、このif文と同じように機能は同じ、もしくは似通っているが行数を短く書くことができるまたは処理が速い方法を色々と探してはいるのですが、思うように期待する検索結果は得られませんでしたので、こちらで質問させていただきました。

何かコードやサイト等ご存知でしたらご教授願えないでしょうか。
よろしくお願いいたします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: コードの簡略化

#2

投稿記事 by h2so5 » 10年前

行数を短縮すること自体にそれほどメリットはないですが、それでも短縮したいなら「コードゴルフ」か何かで検索すればいいかもしれません。
ゲームプログラミングには全く使えないと思います。

hide

Re: コードの簡略化

#3

投稿記事 by hide » 10年前

ラムダ式とか面白いと思いますね。(私にはあまり出来ませんが)
記号祭りでコードが凄いことになりますよ。

ただ、文法レベルでコードを簡略化することがそれほど良いこととは思いません。
読みづらいのはあとで困りますし、コード全体のアルゴリズムに頭を使ったほうが利口と私は考えます。

hide

Re: コードの簡略化

#4

投稿記事 by hide » 10年前

あ、if文のことでしたね。 ちょっと読み違えました。
でもそれも素直にifでいいと思います。

KRNKRS
記事: 40
登録日時: 10年前
連絡を取る:

Re: コードの簡略化

#5

投稿記事 by KRNKRS » 10年前

コードの簡略化よりも可読性を重視した方が良いというのは確かにその通りですね。
しかしコードゴルフなど勉強になりましたありがとうございました。

ソーン

Re: コードの簡略化

#6

投稿記事 by ソーン » 10年前

コードゴルフのようなアクロバティックな書き方以外では、標準ライブラリ、特にalgorithmを漁ってみてはどうでしょう。
たとえば配列の要素の最小値を求めるには最小値を保持する変数を宣言して、ループで各要素と比べて...とやりますが、それを実装してくれているmin_elementという関数があります。
テンプレートを使っているものがほとんどだと思いますが、スマートに書け、保守性も上がるので知らなければと。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: コードの簡略化

#7

投稿記事 by softya(ソフト屋) » 10年前

ちなみに最初のコードですが最適化すれば左程変わらない機械語コードが出力されると思います。確認してみてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る