タグ

ProgrammingとGCCに関するvaliumのブックマーク (2)

  • ライブラリの外に公開するシンボルを制限する - bkブログ

    ライブラリの外に公開するシンボルを制限する C言語にはファイル内 (コンパイル単位) からしかアクセスできない static 関数と、別のファイルからもアクセスできる非static 関数があります。しかし、ライブラリを作成する上では、この2つのスコープだけでは不十分なときがあります。 記事では GNUの開発環境において、ライブラリの外に公開するシンボルを制限する方法を紹介します。 次のような例を考えてみます。 % cat a.c // foo() は libfoo の主役の関数なので公開したい void foo() { bar(); } % cat b.c // bar() はライブラリの中だけで使われるべきなので当は公開 // したくない。しかし別のファイルに含まれる foo() から使われ // ているので、非staticにせざるをえない void bar() { } このようなコ

  • www.textfile.org - Super Technique 講座〜longjmpと例外

    http://www.nurs.or.jp/~sug/soft/super/longjmp.htm だから、コメントのかたちで /* NOTREACHED */ と書いてやると、コンパイラはこのコメントを認識し、このコメントには制御が移らないことを理解する。 ... ちなみにこのようにコンパイラが認識する特殊なコメントとしては、switch 文の FALLTHROUGH を「判って書いている」ことを伝える /* FALLTHROUGH */ があることはご存知かな? へえ当!? 知らなかった。 via http://d.hatena.ne.jp/higepon/20061114/1163517868 追記: http://www.linux.or.jp/JM/html/GNU_gcc/man1/cpp.1.html -lint コメント中に埋め込まれた、プログラムチェッカ lint のコ

    www.textfile.org - Super Technique 講座〜longjmpと例外
  • 1