はじめての C

[Learning GNU C]

3.4. printf() の 手早い 説明

printf 命令文の 終わり近くの 2つの 文字 "\n" に 気づいたと 思う。 これは スクリーン上には 表示されない、printf() で 改行を 表す 記号だ。 '\' (バックスラッシュ) は 引用符 (" ") 内で 出会う C の エスケープ文字で (それの) 次の 文字は 普通 特別な 意味を もつ。 別の 例では "\t" は TAB を 表すのに 使われる。

他に printf() で 注意する 特別の 文字に '%' が あり それに 続く ある 文字を 見つけると これと 変数の 値とを 取り換える 用意を する。 "%d" は int 型の 変数を 取り換える 文字の 綴りで 10進法 dicimal counting システムを 使って 表示される。 書式文字列の なかの 全ての "%d" では 取り換えたい 変数は なにかを printf() に 知らせないと いけない。 code での printf() の いくつかの 使い方が これだ。

Example 3-4. more_printf.c

int
main()
{
int one = 1;
int two = 2;
int three = 4; /* ここでの 値は 重要ではない */

printf("one ==\t%d\ntwo ==\t%d\nthree ==\t%d\n", one, two, three);

return 0;
}

3.5. 簡単な 計算法

この章の 初めで 触れたが 通常 プログラムの 要点 point には data に 作業を 加えることが 含まれる。 一般的な 数字記号を 使うことで C での 計算は 読みやすくなる。

Example 3-5. wages.c

int
main()
{
int hours_per_day;
int days_per_week;
hours_per_day = 8;
days_per_week = 5;

printf("I work %d hours a week.\n", (days_per_week * hours_per_day));
printf("%d %d hour days\n", days_per_week, hours_per_day);

return 0;
}

3.6. グローバル global 変数

これは そこ (= プログラム 全域 global) で 場所を 占める (= 有効だ) が 時には 不適切な code が 書かれ 使われてしまう。 仮りに 2つの 関数で 1つの 変数を 動かす 必要が あるなら それを 全ての 関数で 有効に するより むしろ この変数が 共有する ポインタを 使うべきだ。

3.7. 静的 static 変数

(編集中)

3.8. 定数 constant 変数

守るべき ルールの 1つに code の なかでは 1 か 0 以外の 数を けっして 使わないことが ある。 他の 数字の 定数 constant が 必要なら それを const 変数に しておく。 これは 意味のある 名をつける いい やり方だ。 (例えば) 40 という 数字は わずかな 意味しか もたない。 しかし HOURS_WORKED_PER_WEEK という 識別子 (名前) なら 関数が なにを しているか なんらかのことが 示される。 別の 利点としては (プログラム中の) 全ての 40 を 見つけて 変換する かわりに const 変数を 1箇所で 取り換えることが できる。 前の 方法を 用いると 40 とは 関係の ない 箇所を 変換したり ある箇所を 変換し忘れたりする 誤りが 簡単に 起こる。