2008年7月11日金曜日

int $;

今晩は。変数に関して、面白い仕様があったのでメモ。
C言語の変数(識別子)は通常、

I::=
a|b|…|y|z|
A|B|…|Y|Z|
_
I::=II|I0|I1|…|I9

こんな感じ(多分)ですが、実は'$'(ドル記号)が拡張機能では使えます。
また、先頭に'$'が来てもいいので、'_'と同様の扱いになります。
int $;のように宣言も出来るという訳です。
ためしにgcc 3.4.4(Cygwin上)でコンパイル出来ました。

C言語は相当量の機能が組み込まれているようです。ちょっとしか使ったことが無いのですが、パイプでプロセス間通信が出来たりします。使うかどうかは別として、こういうので遊んでも面白そうです。

言語の仕様を深く知ると、ショートコーディングが楽しくなるわけです。

ではこの辺で。