タグ

2013年4月9日のブックマーク (2件)

  • Episode.1 #defineを「使うな」と「使え」 - キチガイ瀬奈科さん一家の解放治療場

    読んで無い人は先にこちらをどうぞ -> Episode.0 なぜか、#defineは「使うな」と言われたり、「使え」と言われたり、扱いに困ってしまいます。でもうまく使えば見やすく、簡潔なプログラムが書けるようになります。私の認識の経緯を絡めながら#defineを理解していこうと思います。 初めての「使え」 C言語を習うと、必ずマジックナンバーということを聞くと思います。 1 int array[50]={}; 2 int i; 3 for ( i=0; i<50; i++ ) { 4 array[i] = 100; 5 }たとえば上記のようなプログラムがあったとして赤文字の部分がマジックナンバーで、それを#defineで記述しろってことが#defineとの最初の出会いでした。これはこれで理解できます。*1 初めての「使うな」 逆に、私が始めて#defineを「使うな」ということを聞いたのは

    Episode.1 #defineを「使うな」と「使え」 - キチガイ瀬奈科さん一家の解放治療場
  • Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ

    今年の文化祭で書いた記事です。 - C言語といえば、いやなイメージ、過去の遺産といった感じがあるかもしれません。 C言語のネガティブな側面というと、やはりポインタやメモリ管理などが難しい、ということが思いつくかもしれません。 しかし、C言語のポインタは表記に騙されやすいだけで、仕組み自体は全く難しくありません。 文法も、どこぞのPerlC++と比べたら屁でもない単純さです。 実のところ、仕様が煩雑で難しいのは、Cプリプロセッサなのであります。 普段からあまり複雑な使いかたをしないから気づかないかもしれませんが、Cプリプロセッサの置換処理は、欺瞞と裏切りに満ちた世界なのです。 これが進化するとテンプレートなどといったもっと面白いものになるのですが、今回はCプリプロセッサで計算をしちゃったりするところまで試しにやってみましょう。 (なお、GCCにより実験的に調べた記事なので、他のCコンパイラ

    Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ