http://d.hatena.ne.jp/Ozy/20070123#c1169554585 を見て、前から qsort の callback 関数は関数書くより機械語埋めた方が短くなるんじゃないかなーと思ってたのを思い出しました。 int a[] = { 1, 3, 9, 2, 7, 4, 5, 8, 6 }; int main() { int i; qsort(a,sizeof(a)/4,4,"\x8b\0+\x02\xc3"); for (i = 0; i < sizeof(a)/4; i++) { printf("%d ", a[i]); } puts(""); } これ、うちではちゃんと 1 2 3 4 5 6 7 8 9 という出力が得られました。というわけで qsort の第四引数は関数ポインタじゃなくて文字列です。 メモリ保護かかってないのが前提の上に、 x86 依存の上に