ソート関数による並び替えqsort関数qsort関数は第一引数に指定された配列を、第四引数に指定された比較関数の規則に沿って並び替えます。第二引数には配列のサイズ、第三引数には配列要素のデータサイズを指定します。比較関数のルール第四引数には、独自定義した比較関数をコールバック関数として渡します。並び替え実行時、比較関数には整列対象の要素が順次、実引数として渡されてきます。qsort関数は、比較関数の戻り値を元に、各要素を昇順に整列します。一つ目の仮引数の値のほうが小さいに場合には、0より小さい数値を返し、二つ目の仮引数のほうが小さい場合には、0より大きい数値を返す必要があります。両引数の値が同等の場合は0を返します。正と負の戻り値に対する判断基準を逆転させることで、降順による整列を実現することも可能です。比較関数の第一引数が第二引数より小さい場合には正の値を返し、逆の場合には負の値を返すようにします。配列を昇順で整列する方法です。ascが実際の比較関数となります。比較関数のルールに沿った形となっています。*)b;)は意図しない結果を招くため利用しないよう注意してください。「正の数」と「負の数」と「0」の3パターンの的確な戻り値を返す必要があります。long型の場合long型の演算結果をそのまま比較関数の戻り値に使うと、int型のオーバーフローが発生し、正確な整列が行えなくなるため、注意してください。*)b;}次のように、より厳格な戻り値を返すようにする必要があります。"321"}文字列要素の並び替え文字列オブジェクトに対する並び替えも可能です。正の値のいずれかを返す)を比較関数側の戻り値として活用するとよいでしょう。比較関数の仮引数には各要素へのポインタが渡ってきます。**)として渡ってくることになる点に注意してください。**)aによる間接参照が必要となります。*)b)と記述しても警告や実行時エラーが発生しないことがほとんどです。これらはバグの原因にも繋がるため注意してください。構造体の並び替え配列の要素が構造体の場合でもソートが可能です。