pragmaの話

昨日はCコンパイラの話になったので,ついでに今日はpragmaの話を.pragmaはコンパイラの挙動を指示するためのディレクティブであり,実装依存の機能である.
Plan9でHello, world!で,Plan9コンパイル方法を書いたが,8lで,ロード(リンク)するライブラリを指定する必要がない*1.これは,ヘッダファイルに次のようなpragmaが書かれており,ローダがこの情報を参照し,/libや/$objtype/libからライブラリを検索するからである.

#pragma  lib  "libc.a"
#pragma  src  "/sys/src/libc"

*1:gccもlibcは暗黙的にリンクするけど