はじめての C

[Learning GNU C]

第14章 ライブラリの 使い方と 書き方

コンパイルコードの 再利用

14.1. ライブラリとは なにか?

ライブラリは 最初に 実行される main() に 含まれないことを 除けば プログラムと 似ている。 ライブラリにある 関数は アプリケーションと ライブラリとを リンクすることで 別の アプリケーションに 使うことが できる。

14.2. ライブラリを 使う

ライブラリに リンクするには ライブラリ名に 伴う switch "-l}" を 使う 必要が ある。 glibc の 数学用ライブラリを "libm.so" と 呼ぶが このライブラリを 使うための "lib}" または ".so}" は 必要なく コンパイルラインに switch "-lm}" を つけ加える。

14-3. コンパイルの 段階 stage

プログラムの コンパイルには 多くの tool が 必要となり gcc では 行程 process の 各段階を 制御 handle する 別の プログラムを 呼び出すことで 処理する。 3つの 主な 段階が 前処理 preprocessing、編集 compilation および リンク linking だ。 C の コードでは ハッシュ記号 "#" で 始まる 行は プリプロセッサへの 命令 command であり gcc には cpp (c preprocessor) という プリプロセッサが 含まれている。 "#define" と "#include" が 断然 (使われる) もっとも 普通の プリプロセッサコマンドだ。 編集行程は 多くの より小さな 段階に 細分 break down される。 この 編集の 1つも まぎらわしいが 編集と 呼ばれる。 編集とは ソースコードを 実行コード object code に 変換する 行程だ。 プログラムが 長くなるときには GCC"-c" を つけて 呼び出すと ファイルが 再コンパイルできる 最小の より小さな ファイルに プログラムを 分割するよう 変換して コンパイルする 時間 time を とることが できる。 最初は 単に ソースファイルを コンパイルするよう GCC に 知らせないと いけない。 これは ...

14-4. ライブラリを 書く

ライブラリを 書くのは プログラムを 書くことに 似ている。 一番の 明らかな 違いは main() に ないことだ。 日常 使う 関数や 別に 使えることが 判明したと 考えられる 関数には ライブラリは とても 便利だ。

14-5. 動的 dynamic または 静的 static

ライブラリは 動的 あるいは 静的な 方法で リンクすることが できる。 ライブラリの 静的な リンクでは アプリケーション自体を コンパイルする。 動的な リンクは より新しい 方式で アプリケーションが 実行時に ライブラリと リンクすることが 許されていて これは 多くの 利点を もつ。 始めに ライブラリは そのアプリケーションを 再コンパイルする 必要が なく 書き換えることが でき その逆も 可能 vice versa だ。

第15章 役にたつ good コードを 書く

重要な 課題 project への 検討

15.1. 読みやすさ readability

これは 役にたつ コードの 質で もっとも 重要な 1つだ。 幸い それは 経験 practice に ともない 自然と なる 技術だ。 読みやすさからの 最大の 悪口 detractor の 1つが 「気のきいた」 clever コードだ。 多くの 操作を かみ砕き scrunch 1つの 行 または 命令文に 入れることは うまくやった achievement ように 思えるが 別の 誰かが それを 読んでみようと したとき そうした操作を 頭の中で ときほぐす unravel 必要が 生じて (結局は) 遅くなるだろう。