C言語

c言語で配列の要素数を取得するマクロ

c言語で配列の要素数を取得するマクロ

c言語で配列の要素数を取得する関数は作れないと思っていたが、
関数じゃなくてマクロにしたら実装できたっぽい。
これで配列の先頭アドレスを渡す各種関数に配列のサイズを渡さなくて済みそう。

配列の要素数をその都度計算する分、引数で渡すのに比べて
パフォーマンスは低下するけれど気にするほどのことではない。

GET_ARRAY_LENGTHというマクロ

c言語でバブルソートの練習

c言語でバブルソートの練習

c言語でクイックソートの練習

c言語でクイックソートの練習

クイックソートとバブルソートの性能比較(C言語)

クイックソートとバブルソートの性能(ソートの速さ)を比較しました。

ソート対象の配列のサイズが大きくなるほどバブルソートは遅くなりますね。

それにしてもC言語は文字列の連結とか配列の要素数をさくっと取得とかできなくて不便ですね。

今度他の言語とも同じ条件で性能を比較してみようかな。

クイックソート(C言語)

クイックソート(C言語)

クイックソートquicksortのアルゴリズムは難しいから暗記している。

ユズノハは3年半C言語で働いていたが、会社を辞めてからはJavaやらPHPばかり書いており、
そういえばC言語でクイックソートを書いたことがなかったなと思い書いてみた。

見ての通りquicksort_core()は再帰呼出し。
C言語は関数のオーバーロード(多重定義)ができないため、quicksort()とquicksort_core()の2つが必要になる。
更に配列のサイズも配列変数から取得できないため引数で渡す必要がある。

メイン関数が一番下なのはサブ関数のプロトタイプ宣言を省略するため。

やはりC言語は不便な言語だ。
ハードウェアに近いところをいじる時以外はC言語は遠慮したい。