水曜日, 4月 22, 2009

C言語を学ぶ/学んだ人は絶対に見といた方が良い

C99ってしってますかねBeepCapです。
1999年に制定されたC言語の標準規格ですが、10年経つのに対応したコンパイラは精々GCCくらい
それもまだ不完全なものです。

C89という20年前の規格が今でもまかり通っているわけですが

それではなぜC99が流行らないのか。

その辺を探ると...





まぁ細かい説明は置きましょう。
たとえばC99ではコメントに//が使えることになりました。
「え?使えないの?」という方はきっと標準なんて気にしたことのない幸せな方々です
ぼくは会社に入って最初の衝撃がこれでした
*もっともその衝撃の大半は、そんな規格に縛られたコーディング規約なるものの存在でしたがww

そして、おそらくC99が一般に広まらない最大の理由がこれです

配列宣言時の添字に変数が使えます。


何を言っているのかというと。

int a = 100;
char str[a];

こういうことですね。

ちなみに、宣言がスコープの先頭という制約もなくなるので


//10文字のバッファ
int a=10;
char str[a];

などとしておいて

//たりなくなったから1追加
char str[a++];

などと出来るということです。

組み込みだとスタックオーバーフローが目に見えているのですが
現在のPCだと再定義してしまえば問題なさそう...


ほかにも魅力的ながら、コンパイラの設計者を困らせそうな拡張がいっぱいwwwww



10年目前の規格ながら、新しすぎて困ります。(得にマクロ関数を強化しているあたり主流になる予定だったのでしょう)

僕はC99規格を応援しますw(ちゆ風)

2 件のコメント:

skeptician さんのコメント...

某所で有名なskepticianです。
絶対に見といたほうが良い、というタイトルに偽りのないこのクオリティーに感動しました。さすがは恥知らず。どこでも面目躍如なんですね。感動しました。

BeepCap さんのコメント...

えっとあの

誰?

自己紹介

自分の写真
NetRadioDJ ...since 2003, Programer ...since 1994