タグ

Cに関するsasashinのブックマーク (2)

  • printfデバッグに便利なファイル行数表示マクロ - 風と宇宙とプログラム

    emacsとgccを普段使っているレガシープログラマの自分としては、デバッグはprintfが一番便利だと思っている。まれにemacsの中でgdbも使うが、必要以上に時間がかかるし、視野が狭くなり袋小路に陥りやすい。そもそも組込み系ではデバッグ環境が提供されていない場合もある。そんなときは、はやりprintfが手っ取り早くて確実だ。その際、printf出力にファイル名と行数を表示する自前のマクロを長年使ってきた。 printf(HERE "x=%d\n", x); のような感じだ。HEREがそのマクロでファイル名と行数の文字列として"test.cpp(68)"のように展開される。簡単で便利なので自分は非常に気に入って使っている。実際には、このHEREを使ってもっと簡潔なデバッグprint文マクロを使っているが、周囲をみるとほとんどの場合、 printf("%s(%d) x=%d\n", __

    printfデバッグに便利なファイル行数表示マクロ - 風と宇宙とプログラム
  • Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ

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

    Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
    sasashin
    sasashin 2010/10/29
    久しぶりにCの仕事してるのでブクマ。Cは好きじゃないけどプリプロセッサだけはちょう楽しい。無駄に凝りたくなる。
  • 1