K&R2の日本語訳について(付録、索引)

\documentstyle[ASCMAC,a4j,12pt]{jarticle}

\pagestyle{plain}

\begin{document}

\title{K&R2日本語訳訂正表}
\author{付録A,付録B,付録C,索引}
\date{}
\maketitle

「★」は,訳が違っていると思われるもの,
「☆」は,このままではやや意味がとりにくいかと思われるもの,
その他はつまらないもの {\tt :-)} です。
ただし,この区別は主観的たることをまぬがれえません。

\vspace{3mm}

232 ページ,

3 行目,
「プログラム言語」は「プログラミング言語」。
(この本のタイトルもこうなっています。{\tt :-)})

$-$4 行目,
「一つあるいはそれ以上」は「一つ以上」。

$-$3 行目,
「コンパイル」は「翻訳」。

$-$2 行目,
「字句解析」は「字句変換」?

\vspace{3mm}

233 ページ,

5 行目,
「役割をする場合」は「とき」「こと」「点」ぐらい?
(「〜する場合を除けば」と言うと,そうである場合は除かれないように思える。)

12 行目(☆),
「文字のリテラル」は「文字列リテラル」?

$-$12 行目,
「もっと長いこともある」は「もっと多くの文字が有意義となる」。

$-$11 行目(★),
「外部とのリンク」は「外部リンケージ(A11.2 節)」。
「外部とリンク」は「外部リンケージ」。

$-$10 行目,
「わずか」は原文になし(だと思う)。

\vspace{3mm}

234 ページ,

11 行目(☆),
「{\it constant}」が「定数」のこと。
このように,原語を知らないと理解できない部分があるが,
以下,いちいち指摘しない。

$-$9 行目,
「(エル)」は原文になし。

$-$1 行目,
「と解釈される」は「である」,あるいは訳さない。

\vspace{3mm}

235 ページ,

1 行目,
「大きな整定数は単に {\tt long}」は「単に大きな整定数は {\tt long}」。

8 行目,
「を使えばよい」は「が使える」。

11 行目,
「単一引用符」は「一重引用符」。

16 行目,
「8 進数」は「八進数字」。

19 行目,
「16 進数」は「十六進数字」。
「これも」は原文になし。

$-$4 行目,
「これに対しても」は原文になし。

\vspace{3mm}

236 ページ,

3 行目,
「収容する」は原文 accommodate だが,これでいいのだろうか?

5 行目(☆),
「省略可能な符号付き整数」は「『省略可能な符号』のついた整数」の意。

8 行目,
「{\tt e} と指数かあるいは小数点」は「小数点または {\tt e} と指数」。
なお,7 行目の「いずれか一方はなくてもよい」と
この行の「両方省くのは許されない」の原文は「(not both)」で同じである。

$-$12 行目(☆),
「同じ文字列リテラルが区別されるかどうか」は,
原文では“文字列リテラル”が複数形になっているので,
「複数の同じ文字列リテラルが別物と扱われるかどうか」としてはどうか?

\vspace{3mm}

237 ページ,

2 行目,
「幅広文字リテラルも」は「〜は」。

4 行目(☆),
「リテラル語」は,「文字通り,そのままで使われる語」の意味だと思うが,
訳語がわからない。

10 行目(☆),
「大カッコで囲まれた式が省略可能なこと」は
「大カッコで囲まれた省略可能な式」。

$-$11 行目,
「のに使われる」は原文になし。

$-$11 行目(☆),
「変数と呼ばれることもあるオブジェクトは」は
「オブジェクトは,時に変数と呼ばれるが」。
(このままでは,変数と呼ばれないオブジェクトがあるように思える。)

$-$6 ページ,
「他の通用範囲で同じ名前が」は「他の通用範囲での同じ名前が」。

\vspace{3mm}

238 ページ,

4 行目,
「可能な限り」は「可能ならば」。

6 行目,
「一方,」は原文になし。

7 行目(☆),
「出たり再び入ったりする間」は「出てから再び入るまでの間」。

8 行目(☆),
「ある関数プログラムを含むブロックも含めて」は
「関数のコードを与えるブロックも含めてだが」ぐらい?

9 行目,
「キーワード {\tt static}」は
「キーワード {\tt static} 付きで」。

9 行目(☆),
「関数定義と同じレベルですべてのブロックの外側で宣言されたオブジェクト」は
「すべてのブロックの外側で,すなわち関数定義と同じレベルで宣言された
オブジェクト」。

11 行目,
「〜に対して局所的」は「〜に局所的」。

16 行目,
local を「個々の」と訳しているが……。

$-$12 行目,
「実装されている文字セット」は「実行文字セット」? %
(プログラムが動くマシンの文字セットの意味だと思う。)

$-$3 行目,
「{\tt char} 型の次には」は「{\tt char} 型の他に」。

\vspace{3mm}

239 ページ,

3 行目(★),
「単なる整数か」は「単なる整数が短い整数か」。

3 行目(☆),
「{\tt int} 型」は原文では複数形なので,
「{\tt int} 系の型」とでもする?

5 行目,
「一方,」は原文になし。

12 行目,
「よりも」は「と」。

15 行目(★),
「各列挙値」は「各列挙」。

$-$8 行目,
「次に」は原文になし。

$-$5 行目(★),
「基本的な算術タイプ」は「基本型」。
「基本タイプ」は「基礎的なタイプ」? %
「生成される」の後には「,」を入れる。

\vspace{3mm}

240 ページ,

16 行目(☆),
「あるいは」は「および」。

$-$5 行目,
「整数への格上げ」は「整数の格上げ」。

$-$1 行目,
上と同様。

\vspace{3mm}

241 ページ,

1 行目,
「整数への変換」は「整数の変換」。

2 行目(★),
ここの訳文は意味がわからない。
特に,3 行目の「モジュロ1だけ大きい値」は意味不明である。
私訳:
「任意の整数は,与えられた符号なし型に変換される。
その変換後の値は,その符号なし型であらわされる最大の値より1だけ大きな数を
モデュロとしてその整数に合同な最小の非負値となる」。

4 行目,
「がより」は「の方が」。

5 行目,
「逆に」は原文になし。

5 行目(☆),
「ゼロを詰めた符号なし値か,符号拡張による符号付き値と等しくなる」は
「符号なし値だったらゼロを詰めたもの,符号付き値なら符号拡張したもの」の意。

8 行目,
「処理系に左右されることになる」は「処理系定義である」。

11 行目(☆),
「整数型で」は「その整数型で」。
「不定」は「未定義」。

12 行目,
「明確には」は原文になし。

13 行目,
「一方」は原文になし。

15 行目,
「不定」は「未定義」。

17 行目,
「浮動型」は「浮動小数点型」。

21 行目,
「不定」は「未定義」。

$-$6 行目,
私訳:
「多くの演算子は同じような方法で変換をひきおこし,結果の型をうむ」。

\vspace{3mm}

242 ページ,

2 行目(★),
この直前に
「そうでなくて,片方の被演算数が {\tt float} なら,
他方も {\tt float} に変換される」を入れる。

3 行目(★),
ここで行を改めない。
「{\tt unsigned int}」は「{\tt unsigned long int}」。

4 行目(★),
「そうでなくて」の前で行を改める。

14 行目,
「{\tt double}」は「倍精度」。

15 行目,
「やってよい」は「なされうる」?

$-$8 行目(☆),
「ポインタと加算あるいは減算してもよい」は
「ポインタに加算,あるいはポインタから減算できる」。

$-$6 行目(☆),
「同一型のオブジェクトへのポインタ,すなわち配列の中の二つのポインタは」は
「同じ型のオブジェクトへの二つのポインタは,同じ配列の中を指していれば」。

$-$3 行目(☆),
「型変換される」は「型変換された」。
(原文の cast は過去分詞形である。)

$-$2 行目(☆),
「変換してよい」は「変換される」。

$-$1 行目(☆),
「もう一つの」は省くか,「任意のもう一つの」などと訳す。
あるいは,二文に分ける。私訳:
「これでヌルポインタが生成される。
ヌルポインタは,同じ型の任意のヌルポインタとは等しいが,
関数あるいはオブジェクトへのどのようなポインタとも等しくならない」。
さらに意訳:
「これでヌルポインタが生成される。
同じ型のヌルポインタどうしは等しいが,ヌルポインタは,
関数あるいはオブジェクトへのどのようなポインタとも等しくならない」。

\vspace{3mm}

243 ページ,

6 行目,
「処理系によって異なる」は「処理系依存である」。

7 行目(☆),
「そのマッピングは」以下の私訳:
「…,ポインタを十分広い整数に変換してからポインタに戻すと同一であるが,
それ以外は処理系依存である」。

12 行目,
「アドレス割込み」は「アドレス例外」?

13 行目,
原文はここで段落が変わっていない。

15 行目,
「可能である」の次に「ことが保証される」を入れる。

16 行目,
「では厳密な整合の要求は最も少ない」は
「に求められる整合は最も厳密でない」。

20 行目,
「その型が」は「型が」。

$-$8 行目,
「に左右される」は「に従う」。

$-$6 行目,
「処理系に左右される」は「処理系依存である」。

$-$1 行目,
「不可能である」は「適用してはならない」。
「{\tt void} 式」は「空なる(原語:{\tt void})式」?

\vspace{3mm}

244 ページ,

12 行目(☆),
「割り当てる」は「代入する」。

16 行目,
「定めている」の原語は bless.

$-$9 行目,
「各演算子の説明のところで示す」は
「各小節で,そこで記述されている演算子について」。

\vspace{3mm}

245 ページ,

1 行目(☆),
「組み合わせられない」は「結合的でない」「結合法則をみたさない」。

3 行目(☆),
「精度の限度に近く,またオーバーフローが可能な浮動小数点演算」は
「精度の限界近くの浮動小数点演算,あるいはオーバーフローが起こりうる状況」。

14 行目,
「左演算数」は「左被演算数」。

14 行目(☆),
「のもの」は不要。

\vspace{3mm}

246 ページ,

2 行目(☆),
「``\verb|char| へのポインタ" (\verb|wchar_t|)」は
「``\verb|char| (\verb|wchar_t|) へのポインタ"」。

3 行目,
「この変換は」は「この変換も」。

5 行目,
「飾修子」[sic] は「カッコ」?

8 行目,
「グループ化される」は「結合する」。

$-$2 行目,
「代入式」の次に「(A7.17 節)」を入れる。

\vspace{3mm}

247 ページ,

4 行目(☆),
「7.1 節の暗黙の宣言と」は「暗黙の宣言と 7.1 節の」。

8 行目,
「ある種のコンパイラ」の前に「すでに存在する」を入れる。
「尊重して」は原語 bless.

9 行目(☆),
「関数への呼出しとポインタで指定される関数」は
「関数とポインタで指定される関数の呼出し」。

9 行目,
「もちろん」は原文になし。

11 行目,
「一方,」は原文になし。

$-$14 行目(☆),
「厳密に値で渡される」は「厳密に値渡しである」?

$-$5 行目,
「整数格上げ」は A6.1 の見出しと訳語が一致しない。

$-$2 行目,
「不定」は「未定義」。

\vspace{3mm}

248 ページ,

$-$12 行目(★),
「後にドットがあり,さらに識別子が続く後置式」は
「後置式の後ろにドットが,さらにその後ろに識別子がついたもの」。
(元の訳文だと,{\tt pt.x} の {\tt pt} が後置式だと言っているに過ぎないが,
原文は {\tt pt.x} 全体が後置式だと言っているのである。)

$-$12 行目,
「やはり」は原文になし。

$-$11 行目,
「被演算数式」は「被演算数たる式」? %
(「被演算・数式」と区切ってはいけない。)

$-$11 行目,
「後の識別子」は「識別子」。

$-$11 行目(☆),
「構造体」は「その構造体」。

$-$10 行目,
「でなければならない」は $-$5 行目の「必要がある」と同一の原語である。

$-$7 行目(★),
「矢印(−と>で表わす)が後に付き,さらに識別子が続く後置式」は
「後置式の後ろに矢印({\tt -} と {\tt >} からなる)が,
さらに後ろに識別子がついたもの」。

$-$7 行目,
「やはり」は原文になし。

$-$6 行目,
「被演算数」は「被演算数たる式」?

$-$5 行目
「後の識別子」は「識別子」。

$-$5 行目(☆),
「構造体」は「その構造体」。

\vspace{3mm}

249 ページ,

7 行目(★),
「後に++あるいは−−演算子の付いた後置式」は
「後置式の後ろに {\tt ++} あるいは {\tt --} がついたもの」。

7 行目,
「やはり」は原文になし。

8 行目,
「イクレメント」は「インクレメント」。

13 行目,
「まとめて評価される」は「結合する」。

14 行目(☆),
これは単項式(unary expression)の定義である。
単項演算子のそれではないので注意。

$-$5 行目(★),
「++あるいは−−の演算子が前に付いている単項式」は
「単項式の前に {\tt ++} あるいは {\tt --} がついたもの」。

$-$5 行目,
「やはり」は原文になし。

$-$1 行目,
「A7.7 節」「A7.17 節」の「A」と数字の間隔が,
このページ 11 行目のそれと同じでない。

$-$1 行目,
「を見よ」の前に「の議論」を入れる。

\vspace{3mm}

250 ページ,

2 行目,
「求めるのに使われる」は「とる」。

3 行目(★),
「ビット・フィールドであったり,
{\tt register} として宣言されたオブジェクトを参照する左辺値であったり
してはならず,関数型であってもいけない」は
「ビット・フィールドをも,
{\tt register} として宣言されたオブジェクトをも参照しない左辺値であるか,
関数型でなければならない」。

9 行目(☆),
「演算のオブジェクト」は「算術的オブジェクト」。

10 行目(★),
「ポインタ型」の次に「へのポインタ」を入れる。

11 行目,
「も」は「は」。

14 行目,
「整数の格上げ」は A6.1 の見出し「整数への格上げ」と合わない。

$-$7 行目,
「整数の格上げ」は A6.1 の見出し「整数への格上げ」と合わない。

$-$6 行目(★),
「格上げされた値」は「格上げされた型」。

$-$5 行目(☆),
「負のゼロ」は「ゼロの符号反転」。

$-$2 行目,
「演算の結果」は「その結果」。
(A7.4.4, A7.4.5. では文字通り訳されているのに……。)

$-$1 行目,
「このとき」は原文になし。

$-$1 行目,
「整数の格上げ」は A6.1 の見出し「整数への格上げ」と合わない。

\vspace{3mm}

251 ページ,

11 行目,
「求めるためのものである」は「与える」。
「評価の行なわれない式」は「式(評価は行なわれない)」。

$-$13 行目,
「当のオブジェクトが配列にタイルを貼るのに必要な」は
「当のオブジェクトに配列を貼らしむるのに必要な」。

$-$10 行目(☆),
「特定の型」は「どの型になるか」。

$-$6 行目,
「のに使われる」は不要。

$-$5 行目(☆),
補足:これが型変換式(cast expression)の定義である。
型変換のそれではないので注意。:-)

\vspace{3mm}

252 ページ,

2 行目,
「適用される」は「結合する」。

11 行目,
私訳:
「二項の {\tt /} 演算子では
第1の被演算数を第2の被演算数で割った商が求められ」。

12 行目,
「不定となる」は「未定義である」。

$-$14 行目,
「適用される」は「結合する」。

$-$13 行目,
「各種の型」は「その他にもいくつかの型」。

$-$8 行目,
ここは字下げする。
「…には任意の整数型の値を加えてもよい」は
「…と任意の整数型の値は加えてよい」。

$-$7 行目,
「ポインタが示すオブジェクトの長さだけ」は
「ポインタが指すオブジェクトのサイズを」。

$-$6 行目,
「常に」は不要。

$-$6 行目(☆),
「アドレス・オフセット」は「アドレスのずれ」?

$-$5 行目(☆),
「オフセットされた」は「ずれた,」?

$-$1 行目,
「不定である」は「未定義である」。

\vspace{3mm}

253 ページ,

1 行目,
「配慮」は「ただし書き」?

2 行目,
「容認した」は「合法と認めた」?

6 行目(☆),
「次々の」は「となり合った」?

8 行目,
「{\tt stddef.h}」を囲む不等号が左右で不ぞろいである。

9 行目,
「不定となるが」は「未定義だ」。

12 行目,
「適用される」は「結合する」。

13 行目,
「整数格上げ」は「整数(へ)の格上げ」。

15 行目,
「不定となる」は「未定義である」。

$-$4 行目,
「に依存する」は「定義である」。

$-$2 行目,
「適用される」は「結合する」。
「重要ではない」は「役に立たない」。

\vspace{3mm}

254 ページ,

12 行目(☆),
「同じオブジェクトの部分に対して」は
「同じオブジェクトの二つの部分に対して」としてはどうか?

13 行目(☆),
「単純な」は「単一の」。

14 行目(☆),
「同じ構造体の二つのメンバーを指す場合」とする?

15 行目,
「また」は原文になし。

16 行目,
「一方,」は原文になし。

18 行目(☆),
「{\tt P+1} がたとえ配列の外側を指すものであっても」は
「{\tt P+1} は配列の外側を指すけれども」。

19 行目,
「定義されない」は「未定義である」。

22 行目,
「この規則」は「これらの規則」。

\vspace{3mm}

255 ページ,

8 行目,
「整数の被演算数」は 14 行目では「整数被演算数」,
$-$6 行目では「整数」となっていて不統一。

10 行目,
この行と上の行との間隔は,3 行目と 4 行目の間隔と合っていない。

13 行目,
字下げ不要。

$-$7 行目,
「ビッド」は「ビット」。
「OR 関数」は「内包的 OR 関数」。

$-$1 行目,
「適用される」は「結合する」。

\vspace{3mm}

256 ページ,

3 行目,
「0」はふつうの字体に。

4 行目,
「あれ」「0」「1」はふつうの字体に。

6 行目,
「つねに」は原文になし。

11 行目,
「適用される」は「結合する」。

$-$11 行目,
「つねに」は原文になし。

$-$1 行目(☆),
「共通の型」の前に「その」を入れる。

\vspace{3mm}

257 ページ,

4 行目,
「型変換」は「型比較」。

8 行目(★),
私訳:
「代入演算子はいくつかあるが,すべて右から左に結合する」。

15 行目,
「しかし」は原文になし。

16 行目(☆),
「その型を {\tt const} で修飾するのは禁止されている」は
「その型は {\tt const} で修飾されていてはいけない」。

17 行目(☆),
「{\tt const} をもつメンバー,あるいは再帰的にサブメンバーを
もってはならない」は
「メンバー,あるいは再帰的なサブメンバーに {\tt const} をもつものを
もってはならない」。

19 行目(☆),
「格納される値である」は「格納されている値」。

$-$5 行目(☆),
「定数である」は「定数式である」。

\vspace{3mm}

258 ページ,

$-$4 行目(☆),
「型変換では整数型を指し」は
「型変換で整数型であることを示し」。

$-$3 行目(☆),
「関接アドレス指定」は 114 ページの「関接演算子」のこと,
「アドレス計算」は「アドレス演算子」のこと。

\vspace{3mm}

259 ページ,

2 行目(☆),
「外部の」は「外部的な」。

3 行目(☆),
同上。

5 行目,
「さらに」は原文になし。
「外部の」は「外部的な」。

6 行目(★),
「オブジェクトに定数を足したもの」は
「オブジェクトのアドレスに定数を足したもの」。

12 行目(★),
「宣言の形式は」の直前に
「メモリ確保を行なう宣言を{\bf 定義}という」を入れる。

15 行目(☆),
宣言指定子とは,前の行の declaration-specifier(s) のことである。

\vspace{3mm}

260 ページ,

14 行目,
「の変数」は原文になし。

15 行目,
「処理系に左右される」は「処理系依存である」。

$-$1 行目,
「外部リンケージをもつ {\tt static} として扱われる」は
「静的で外部リンケージをもつとして扱われる」。

\vspace{3mm}

261 ページ,

17 行目(☆),
「たかだか一つの {\tt long} あるいは {\tt short} しか使えない」は
「{\tt long} あるいは {\tt short} のたかだか一方しか使えない」。

19 行目(☆),
「たかだか一つの {\tt signed} あるいは {\tt unsigned} が指定できる」は
「{\tt signed} あるいは {\tt unsigned} のたかだか一方が指定できる」。

20 行目(☆),
「そのいずれ」は {\tt signed} と {\tt unsigned} のいずれか,の意。

$-$2 行目,
「処理系独立な」は「処理系に依存しない」?

\vspace{3mm}

262 ページ,

2 行目,
「一方」は原文になし。

\vspace{3mm}

263 ページ,

3 行目,
「フィールド」はゴチックにする。

12 行目(☆),
「先の」「次の」は原文にない。
入れて意味が通りやすくなるとも思えない。

$-$10 行目(★),
「出きたとき」は「出てきたとき」であろう。

$-$9 行目(★),
「構造体型と共用体型」は「構造体型あるいは共用体型」。

$-$5 行目(★),
「構造体あるいは共用体に」は「構造体あるいは共用体の型に」。

$-$4 行目(★),
「機能をもつ」は原文にない。そのうしろに,次の文が落ちている。
「構造体あるいは共用体は,それ自身のインスタンスへのポインタを
含んでよい。不完全型へのポインタは宣言可能だからである」。

\vspace{3mm}

264 ページ,

10 行目,
「ところが,」は原文になし。

16 行目,
「一方,」は原文になし。

$-$13 行目,
「処理系次第」は「処理系依存」。

$-$9 行目(☆),
「幅 0 の名前なしフィールドにはこのパッディングが行なわれ」は
「幅 0 の名前なしフィールドはこのパディングを行なうことを示し」。

$-$2 行目,
「メモリのレイアウトをビット・レベルで記述する」は
「ビット・レベルで知られているメモリのレイアウトを記述する」。

\vspace{3mm}

265 ページ,

3 行目,
「適した」は「依存する」。

7 行目,
「もちろん」は原文になし。

17 行目,
「同じ構造体」の前に「整数,」を入れる。

21 行目(☆),
「これらの宣言で」は「これらの宣言があると」。

$-$4 行目(★),
「部分」は「部分木」。

$-$1 行目(☆),
「割り当てられない」は「代入されたのでない」。

\vspace{3mm}

266 ページ,

2 行目(★),
「初期化列」の原語は initial sequence なので,「先頭部分」ぐらい?

4 行目(★),
「初期化部分」の原語は initial part なので,「先頭部分」ぐらい?

5 行目,
「プログラム」は「断片」「プログラム片」ぐらい。

$-$12 行目,
「にまたがった」は「に値をもつ」「を動く」ぐらい。

\vspace{3mm}

267 ページ,

5 行目,
「割当て」は「代入された」。

14 行目,
「実際には」は原文になし。

$-$1 行目(★),
「評価順序」の原文は grouping なので,「結合順序」?

\vspace{3mm}

268 ページ,

9 行目(☆),
「(A8.2 節)」は「の型の部分」のあとへ移す。

11 行目(★),
「演繹的」は「帰納的」。

$-$4 行目(☆),
「{\tt T} に対する」は「{\tt T} への」。

\vspace{3mm}

269 ページ,

3 行目(★),
このあとに
「ゆえに,実際にはこの宣言で {\tt ap} に ``{\tt int} へのポインタの配列"
という型が与えられる」が落ちている。

7 行目(★),
「まず指定される」は「宣言される」。

10 行目(★),
「``{\tt const int}" へのポインタ"」は「``{\tt const int} へのポインタ"」。

12 行目(☆),
「配列の宣言」は「配列宣言子」。

15 行目(☆),
「{\it type-modifier} {\tt T}」は二重引用符でくくる。

\vspace{3mm}

270 ページ,

3 行目(★),
「項目の配列である」は「3 項目からなる配列である」。

7 行目,
「x3d[i]」はタイプライタフォントにすべきである。

8 行目,
「この」は原文にない。

14 行目(★),
「この掛算には」は「この足し算には」。
「これは」以下は,「この規則から,〜が出てくる」ではないのだろうか? %
原文 It follows from the rules that ... を
訳者は the rules that ... と解釈しているが,
it の実際的な内容が that 以下とはとれないだろうか?

16 行目(☆),
plays no other part の other が訳されていない。
「添字の計算にはこれ以外の点では関係しない…」?

17 行目(☆),
「関数の宣言」は「関数宣言子」。

$-$10 行目(☆),
「{\it type-modifier} {\tt T}」は二重引用符でくくる。

$-$9 行目(★),
「関数宣言」は「関数宣言 {\tt T D} では」。

\vspace{3mm}

271 ページ,

6 行目(★),
「のみからなる」は「をもつ」。

12 行目(☆),
「記憶クラス」は「記憶クラス指定子」。

18 行目(☆),
「{\it type-modifier} {\tt T}」は二重引用符でくくる。

18 行目(★),
「ときには」は「ような古いスタイルの関数宣言 {\tt T D} では」。

19 行目(☆),
「未指定の引数」は「引数未指定の」。

\vspace{3mm}

272 ページ,

9 行目,
by far が訳してない。「何といっても」?

11 行目,
「対応」の原語は coersion か? だとしたら,「型変換」?

\vspace{3mm}

273 ページ,

1 行目(★),
「A7.1」は「A7.19」。

2 行目(★),
「レジスタ」は「{\tt register}」。

12 行目,
「不定」は「未定義」。

$-$5 行目,
「わけである」は原文にない。

\vspace{3mm}

274 ページ,

5 行目,
「許すことによって」は「許すことを除けば」?

6 行目,
「意味付け」の原語は semantics なので,何か違っている?

7 行目,
「次に」は原文になし。

\vspace{3mm}

275 ページ,

10 行目(☆),
「文字配列のメンバーが文字列で初期化されることを」は
「メンバーが文字列で初期化される文字配列を」。

11 行目,
「ヌル文字」の前に「終わりの」を入れる。

13 行目,
字下げする。

\vspace{3mm}

276 ページ,

9 行目(★),
「それぞれが整数へのポインタを返す…」は「それぞれが整数を返す…」。

18 行目,
「8.6 節」の次に「を見よ」を入れる。

$-$8 行目,
字下げしない。

$-$1 行目,
「まったく」は原文になし。

\vspace{3mm}

277 ページ,

1 行目,
「したがって,」は原文になし。

12 行目,
「異なるが」は「異なり」。

15 行目(☆),
「型指定リスト」は「型指定子リスト」。

16 行目,
「一方」は原文になし。
「…が重要なのはいうまでもない」は「…は意味をもつ」。

\vspace{3mm}

278 ページ,

7 行目,
字下げしない。

11 行目,
「case および default という名札」は
「case 名札および default 名札」。

\vspace{3mm}

279 ページ,

3 行目,
「識別子は1回しか」の前に「同一の」を入れる。

4 行目,
「のみ」は原文になし。

5 行目(★),
「そのブロックに先頭から入るごとに」は
「そのブロックに入るごとに先頭で」。

6 行目(★),
「そのブロックへの分岐」は「そのブロックの中への分岐」。

15 行目(☆),
「式」は,その上の expression を指す。

$-$11 行目,
「一方」は原文になし。

$-$7 行目,
「{\tt switch}」はタイプライタフォントにしない。

$-$6 行目,
「名札は」は「名札も」。
「{\tt switch}」はタイプライタフォントにしない。

$-$5 行目,
「{\tt switch}」はタイプライタフォントにしない。

$-$4 行目,
「{\tt switch}」はタイプライタフォントにしない。

\vspace{3mm}

280 ページ,

1 行目(★),
「が実行される」は「へ制御がうつる」。

2 行目,
「{\tt switch}」はタイプライタフォントにしない。

13 行目,
「これに対し」は原文になし。

16 行目,
「しかし」は原文になし。

\vspace{3mm}

281 ページ,

8 行目,
字下げする。

11 行目(★),
「最小の文」は「最小のそのような文」,
わかりやすく言葉を補えば「最小のくり返し文」。

18 行目,
「次に」は原文になし。

18 行目(★),
「最小の文」は「最小のそのような文」,
わかりやすく言葉を補えば「最小のくり返し文」。

19 行目(★),
「終端の文」は「終了した文」。

20 行目,
「さて」は原文になし。

22 行目(★),
「返される値」は「返される型」。

23 行目(★),
最後に「それらの場合には返される値は未定義である」が落ちている。

$-$7 行目(★),
「…宣言で」は「…宣言からなり」。

\vspace{3mm}

282 ページ,

3 行目,
「関数のプログラムが」は「関数のコードは」。

9 行目(☆),
「として」は「の中で」。

10 行目,
「参照されたい」は「を見よ」。

$-$9 行目,
「さて」は原文になし。

\vspace{3mm}

283 ページ,

4 行目,
「パラメータを宣言」は「パラメータのみを宣言」。

12 行目,
「呼出しの間には」は「呼出し中は」。

13 行目,
「割り当てられる」は「代入される」。

$-$8 行目,
「プログラム部」は「コード」。

$-$1 行目,
「{\tt int a, b, c};」のセミコロンは大きすぎる。

\vspace{3mm}

284 ページ,

3 行目(☆),
「識別子」は「他の識別子」。

4 行目,
「extern」はタイプライタフォントにする。

6 行目,
「extern」「static」はタイプライタフォントにする。

$-$9 行目(★),
「仮の宣言」は「仮の定義」。

\vspace{3mm}

286 ページ,

8 行目,
ここで改行しない。

12 行目(☆),
「識別子」は「その識別子」。

$-$4 行目(☆),
「をもつ」は「をさす」。

$-$1 行目,
「マクロ展開」は「マクロ代入」。

\vspace{3mm}

287 ページ,

7 行目(☆),
「と同様な」は意味がわからない。「で」?

11 行目(★),
「非難の的になるかもしれない」は「圧縮されている」。

$-$9 行目(★)
「プログラムを集め」は「プログラムとデータを集め」。

\vspace{3mm}

288 ページ,

4 行目,
字下げする。

12 行目,
「トークンとして与えられた文字列」は「与えられたトークン文字列」。

15 行目(★),
「(前後の空白文字は別として)」は除き,
行末に「ここで,空白文字による分離は,そのしかたを問わない」を入れる。
(「前後の空白文字」だけでなく,途中の空白文字も別なのである。)

$-$2 行目(☆),
「定義をプリプロセッサに」は「プリプロセッサ定義を」。

\vspace{3mm}

289 ページ,

5 行目,
「また入力の際には」の原語は During collection である。
上でやっているようにトークンを集めてくる間には,の意?

8 行目(☆),
「マクロの置換トークン文字列に対応する…」ではなく,
「マクロの置換トークン文字列に,対応する…」なので注意。

$-$13 行目,
「置換後」は「置換直後」。

\vspace{3mm}

290 ページ,

6 行目,
字下げしない。

9 行目(★),
「ポイント」は「ポインタ」。

10 行目(★),
「また副作用をもちうる引数は」は「また引数は副作用をもちうるが」。

14 行目,
「{\tt tempfile (/usr/tmp)}」は「{\tt tempfile(/usr/tmp)}」。

$-$10 行目,
「また」は原文になし。

$-$8 行目,
「{\tt var 123}」は「{\tt var123}」。

\vspace{3mm}

291 ページ,

1 行目,
「{\tt xcat(xcat(1,2),3)}」は「{\tt xcat(xcat(1, 2), 3)}」。

6 行目(★),
「コンパイラ」は原文にない。訳すなら「プリプロセッサ」であろう。

10 行目(★),
「\verb|\*|」は「{\tt /*}」。
「無効」は「未定義」。

$-$11 行目(★),
「\verb|\*|」は「{\tt /*}」。
「不定」は「未定義」。

$-$6 行目(★),
「生成され」は「生成されねばならず」。

\vspace{3mm}

292 ページ,

$-$14 行目(★),
「次々の」は原語 successful なので「成功した」。
意味としては,ゼロでない値の式をもつ,のこと。

$-$11 行目(★),
「\verb"#if" あるいは \verb"#elif" がうまく見つかって」は
「ゼロでない値の式をもつ \verb"#if" あるいは \verb"#elif" が見つかって」。
(元のままだと,\verb"#if", \verb"#elif" が見つかりさえすればいい,
とも読める。)

$-$9 行目,
「さらに,」は原文にない。

\vspace{3mm}

293 ページ,

3 行目(☆),
「考えられるから」は「みなされ」。
(考えられる理由は考えてもわからないと思う。)

7 行目,
「次に」は原文になし。

$-$4 行目,
「エラー表示」は「エラー生成」。

\vspace{3mm}

294 ページ,

$-$6 行目(★),
「定義 1」は「定数 1」。

\vspace{3mm}

295 ページ,

4 行目,
「そのままに使われる」は,原語 terminals given literally で,
「文字通り与えられた終端」? これ以上の置換はされない,
最終的なもの,という意味だと思う。

6 行目,
「形に変換可能である」は「形に機械的に変換可能である」。
「その際」以下は,私には内容がわからない {\tt :-)} のでパス。

\vspace{3mm}

301 行目,

8 行目,
「ヘッダ」はゴチ。

$-$5 行目(★),
「すべての前」は「すべての使用の前」。

$-$4 行目,
「また,」は原文にない。

\vspace{3mm}

302 行目,

6 行目(☆),
「UNIX のようなシステム」は「いくつかのシステム,特に UNIX」。

7 行目(☆)
「このテキスト・ストリームは行の集まりである」は
「テキスト・ストリームは行の並びである」。

8 行目,
「文字からなり」は「文字をもち」。(\verb"'\n'" も構成要素なので。)

9 行目(★),
「(\verb"'\n'" を復帰および改行にマッピングするといった)との間の相互変換」
は
「との間の相互変換(\verb"'\n'" を復帰および改行にマッピングするといった)」。

10 行目,
「一方,」は原文になし。

13 行目,
「さて,」は原文になし。
「とは」は「に」。

15 行目,
「に対する」は「への」。

$-$7 行目(★),
「整数」は「整数型」。

$-$4 行目,
「は次のようになる」は「には次のようなものがある」。

\vspace{3mm}

303 ページ,

6 行目(★),
「すなわち」は「または」。

$-$12 行目,
「バッファ」は「バッファリング」。

$-$8 行目(★),
ここの {\tt remove()} と次の {\tt fclose()} で,見出しが入れかわっている。
(直っている版もある?)

$-$5 行目,
「ストリームを」の前に「それから」を入れる。

\vspace{3mm}

304 ページ,

2 行目,
「名前の変更に使われる」は「名前を変更する」。

6 行目,
「ためのものである」は原文になし。

\vspace{3mm}

305 ページ,

3 行目,
「printf」はタイプライタフォント,「関数」は「関数群」。

5 行目,
「の出力が行なわれる」は「書きこまれる」。

6, 7 行目,
字下げしない。

14 行目(★),
「正常に」は「常に」。

$-$3 行目,
「{\tt e}, {\tt E}, {\tt f}」の次に「変換」を入れる。

\vspace{3mm}

306 ページ,

2 行目,
「修飾子」は「変更子」?

6 行目(★),
「引数(s)」は「引数(もしくは引数たち)」。
(argument(s) の (s) がそのまま残った?)

8 行目,
「不定」は「未定義」。

11 行目,
「10 進数」は「十進記法」。以下,この表の中には同じような点がいくつか
見られるが,いちいちことわらない。

13 行目(★),
「がないとき」は「なし」。

16 行目,
「単一の文字,{\tt unsigned char} に変換されたあとで」となる。

18 行目,
「の文字がつきる」はトル。

$-$6 行目,
「に書き込まれる」はゴチ。

$-$4 行目,
字下げしない。

$-$1 行目,
字下げしすぎ。

\vspace{3mm}

307 ページ,

6 行目,
「{\tt printf} と同様だが」は「{\tt printf} 関数たちと同様だが」。

8 行目(★),
「初期化される」は「初期化されたものである」。

11 行目,
「{\tt scanf}」は「{\tt scanf} 関数たち」。

14 行目(☆),
「各引数は」は「後続の各引数は」。

19 行目(☆),
「には次のものを書いてよい」は「は次のものを含みうる」。

\vspace{3mm}

308 ページ,

5 行目,
「のに使われる」は原文になし。

6 行目,
「定義されている」は「合法な」。

8 行目(★),
「を付けることができる」は「が付きうる」。
(必要なときに付けなければ正しくない結果をうむから,「付く」と訳す?)

10 行目(★),
「を付けてもよい」は「が付きうる」。
(必要なときに付けなければ正しくない結果をうむから,「付く」と訳す?)

14 行目,
「10 進数」は「十進整数」。

15 行目,
「0」はタイプライタフォントにする。

$-$11 行目,
「のつながったもの」はトル。

$-$8 行目,
「項目カウントも」は「項目カウントは」。

$-$7 行目(★),
「における」は「の文字からなる」。

$-$4 行目(★),
「入力文字がなる」は「文字からなる入力文字の」。

$-$3 行目,
「最後には」はトル。

$-$1 行目,
「リテラルな」は「文字通りの」。

\vspace{3mm}

309 ページ,

8 行目(☆),
「({\tt int} に変換した上で)として」は
「として({\tt int} に変換した上で)」。

8 行目,
「(あるいは… {\tt EOF} を)」は
「あるいは… {\tt EOF} を,」。

$-$8 行目(★),
「負でない値」は「書き込んだ文字」。

$-$8 行目,
「(エラーのときは {\tt EOF})を」は
「エラーのときは {\tt EOF} を,」。

\vspace{3mm}

311 ページ,

8 行目
「ファイル位置関数」は「ファイル位置付け関数」。

10 行目(★),
「2進の」の前に,
「その次の読み書きの際は,新しい位置から始まるデータがアクセスされる」
の一文が落ちている。

14 行目(★),
「{\tt ftell} (この場合 {\tt origin} は \verb"SEEK_SET"
でなければならない)で返される値」は
「{\tt ftell} で返される値(この場合 {\tt origin} は
\verb"SEEK_SET" でなければならない)」。

$-$3 行目,
「\verb"* ptr"」は「\verb"*ptr"」。

$-$2 行目,
「のに使われる」はトル。

\vspace{3mm}

312 ページ,

2 行目,
「\verb"* ptr"」は「\verb"*ptr"」。

2 行目(☆),
「置くのに使われる」は「位置づける」。

6 行目,
「整数式」の前に「加えて,」を入れる。
「最近に」の前に「最も」を入れる。

12 行目,
「セットされると」は「セットされていると」。

15 行目,
「セットされると」は「セットされていると」。

$-$7 行目(☆),
「整数に対応する処理系で定義された」は
「整数に対応する,処理系定義の」。

$-$4 行目,
「{\tt strerror} については B3 節を見よ」は
「B3 節 の {\tt strerror} を見よ」。

$-$2 行目,
「ためのものである」はトル。

\vspace{3mm}

313 ページ,

6 行目,
「10 進数」は「十進数字」。

13 行目,
「16 進数」は「十六進数字」。

15 行目,
「\verb"' ~'"」は「\verb"'~'"」。

$-$8 行目(★),
「文字関数」は「文字列関数」。

$-$4 行目,
「不定」は「未定義」。

\vspace{3mm}

314 ページ,

3 行目,
「{\tt ct}」は原文では「{\tt c}」。(意味を考えれば前者が正しい。)

7 行目(★),
「文字列 {\tt cs} と文字列 {\tt ct} を比較」は
「文字列 {\tt cs} を文字列 {\tt ct} と比較」。
「{\tt cs>ct}」は「{\tt csct}」。

9 行目(☆),
「文字列 {\tt cs} と文字列 {\tt ct} の最大 {\tt n} 文字」が
「『文字列 {\tt cs} と文字列 {\tt ct}』の最大 {\tt n} 文字」なのか,
「文字列 {\tt cs} と『文字列 {\tt ct} の最大 {\tt n} 文字』」なのかは不明。
たぶん前者である。
(原文は「文字列 {\tt cs} の高々 {\tt n} 文字を
文字列 {\tt ct} と比較」とも読める。)

9 行目,
「比較」の次にマルを入れる。

26 行目,
文末に「;下を見よ」と加える。

29 行目(★),
「{\tt s} の」の前に
「{\tt s} の中の,そのトークンの次の文字は,\verb"'\0'" で上書きされて,
そのトークンは終結させられる。」の一文が落ちている。

30 行目,
「呼出し」は「各呼出し」。
「文字列位置」は「トークン」。

$-$7 行目,
「次に」は原文にない。

$-$5 行目(☆),
「{\tt n} 型は」は「{\tt n} は型」。

\vspace{3mm}

315 ページ,

7 行目,
「領域」は「定義域」。

8 行目,
「範囲」は「値域」。
「とくに」は原文にない。

9 行目,
「になっている」は「である」。
「領域エラー」は「定義域エラー」。

10 行目,
「領域エラー」は「定義域エラー」。

11 行目,
「範囲エラー」は「値域エラー」。

14 行目,
「一方,」は原文にない。

15 行目(★),
「{\tt errono}」は「{\tt errno}」。

15 行目,
「処理系次第」は「処理系定義」。

$-$17 行目から $-$14 行目,$-$9 行目,$-$8 行目,$-$6 行目から $-$3 行目,
原文は行末にピリオドあり。

$-$1 行目,
$x \cdot 2^n$ の頭が他の行とそろっていない。

\vspace{3mm}

316 ページ,

2 行目(☆),
「間隔」は「区間」。

7 行目,
「そのとき」は原文になし。

9 行目,
「処理系依存」は「処理系定義」。

12 行目,
「ためのものである」は原文になし。

\vspace{3mm}

318 ページ,

10 行目,
「ただし」は原文になし。

14 行目,
「のに使われる」は原文になし。

17 行目,
「のに使われる」は原文になし。

18 行目(★),
「捨てられて」は「フラッシュされて」。

$-$2 行目(★),
「登録ができなかったときは非零が返る」を行末に補う。

\vspace{3mm}

319 ページ,

1 行目,
「実行環境に」は「実行すべく環境に」。

3 行目,
「に左右される」は「依存する」。

5 行目(☆),
「で表わされる」は「に同伴する」。

10 行目,
「のに使われる」は原文になし。

$-$2 行目,
「ためのものである」は原文になし。

\vspace{3mm}

320 ページ,

2 行目,
「ためのものである」は原文になし。

$-$11 行目,
「include」は「インクルード」。

$-$7 行目,
「ものである」は原文になし。

$-$6 行目(★),
「に指定された」は「の名前つき」。

$-$5 行目(★),
「そして,各引数を順に指す型 \verb"va_list" の変数 {\tt ap} が {\tt f} の
中で次のように宣言されるとする」は
「このとき,各引数を順に指す型 \verb"va_list" の変数 {\tt ap} を {\tt f} の
中で次のように宣言せよ」。

$-$2 行目(★),
「名指していない」は「名前なし」。

\vspace{3mm}

321 ページ,

2 行目(★),
「未指定」は「名前なし」。

3 行目(★),
「データ」は「値」。

11 行目,
「深く入れ子に」の前に「典型的には,」を入れ,次の行の「よく」はトル。

\vspace{3mm}

322 ページ,

5 行目,
「ものである」は原文になし。

7 行目,
「のに使われる」は原文になし。

8 行目,
これ以降の行は字下げしない。

14, 15 行目,
このあたり,私には意味がわからないのでわかりません。{\tt :-)}

$-$7 行目,
「すなわち」は「それから」。
このあたりも,私には意味がわからないのでわかりません。{\tt :-)}

$-$4 行目,
「また」は原文になし。「によって異なる」は「定義である」。

$-$2 行目,
「のに使われる」は原文になし。

\vspace{3mm}

323 ページ,

1 行目(☆),
「日付けの時刻の関数」は「日付けと時刻の関数」。

2 行目,
「ためのものである」は原文になし。

3 行目,
これ以降の行は字下げしない。

4 行目,
「時間に対する関数では,」は原文になし。

7 行目から 15 行目,
もう少し右へよせる。

7, 8 行目,
seconds after the minute を「分の後の秒」と訳し
minutes after the hour を「毎時の後の分」と訳すのは統一がとれていない。

7 行目から 14 行目(☆),
意味がわかるように書けば
「秒」「分」「(真夜中から数えての)時」「(月の中の)日」
「(1月を 0 と数えての)月」「(1900 年を 0 と数えての)年」
「(日曜日を 0 と数えての)曜日」
「(1月1日を 0 と数えての)年の中の通算日」
ぐらいだろうか?

$-$10 行目,
「ないときには」は「得られないときには」。

$-$10 行目(★),
「\verb"CLK_TCK"」は「\verb"CLOCKS_PER_SEC"」。

$-$7 行目(☆),
「割り当てられる」は「代入される」。

$-$1 行目(★),
「であろう」は「ようになる」。
(例えば {\tt *tp} が 4 月 31 日で {\tt mktime} を呼ぶと
5 月 1 日という正しい日付になるのである。)

\vspace{3mm}

324 ページ,

12 行目(☆),
「カレンダー時間」のあとに「{\tt *tp}」を入れる。

12 行目,
行末のマルの前があきすぎ。

13 行目,
「NULL」は「{\tt NULL}」。

16 行目,
行末のマルの前があきすぎ。

20 行目,
「のに使われる」は原文になし。

20 行目(★),
「文字列」は「文字」。

\vspace{3mm}

325 ページ,

2 行目から 23 行目,
原文はすべて行末にピリオドあり。

14 行目(★),
「{\tt 00-59}」は「{\tt 00-61}」。
(2 秒までの閏秒を見込んでいるため。)

24 行目,
「処理系で定義される制限」は「処理系定義の制限」。

25 行目,
「ためのものである」は原文になし。

$-$10 行目(★),
「{\tt +21474836477}」は「{\tt +2147483647}」。

$-$9 行目(★),
「{\tt -21474836477}」は「{\tt -2147483647}」。

$-$4 行目(★),
「{\tt 2555}」は「{\tt 255}」。

$-$3 行目(★),
「{\tt 655355}」は「{\tt 65535}」。

$-$2 行目(★),
「{\tt 429796729575}」は「{\tt 4294967295}」。

$-$1 行目(★),
「{\tt 655355}」は「{\tt 65535}」。

\vspace{3mm}

326 ページ,

8, 15 行目(☆),
「仮数部の桁数,基数 \verb"FLT_RADIX" で」の意味らしい。

\vspace{3mm}

327 ページ,

2 行目,
「C」は「C 言語」。「C 言語」は「C」。

3 行目,
「開発されている C プログラム」は「存在する習慣」?

4 行目,
「プログラム法」は「習慣」?

$-$5 行目,
「オペレータ」は「演算子」。

$-$3 行目,
「しかし」は原文になし。

\vspace{3mm}

328 ページ,

3 行目(☆),
「導入される」は「始まる」。

4 行目(☆),
「エスケープも」は「エスケープが」。

5 行目(☆),
「文字列」は「並び」? 原文は sequence であって string ではない。

9 行目(☆),
「エスケープ系列」は「エスケープ列」。

10 行目,
「しかし」は原文になし。
「エスケープ系列」は「エスケープ列」。

11 行目,
「不定」は「未定義」。

16 行目(★),
「降接」は「隣接」。

17 行目(★),
「文字列定数」は「文字定数」。

20 行目,
「浮動小数点数」は「浮動小数点量」。

23 行目(★),
「ない」は「ある」。

30 行目,
「{\tt } および {\tt }」は小カッコでくくる。
「の利用を」は「をおくことを」?

\vspace{3mm}

329 ページ,

1 行目,
「{\tt const}」の次に「(A8.2 節)」を入れる。

4 行目,
「実質的に」は前の行の「“整数に」の前に移す。

6 行目,
「=+」は「{\tt =+}」。

8 行目(☆),
「扱うコンパイラのライセンス」は
「扱ってよいという,コンパイラに対するライセンス」の意味。
(ここの指摘は,奥村晴彦氏によるものです。)

10 行目,
「-」は「{\tt -}」,「+」は「{\tt +}」。

11 行目,
「*」は「{\tt *}」。

14 行目(☆),
「配列への」は「その配列への」。

18 行目,
「{\tt }」は小カッコでくくる。

21 行目(☆),
「あるオブジェクト」は「そのオブジェクト」。

\vspace{3mm}

330 ページ,

1 行目(☆),
「外側の」の前に「それが」を入れる。

2 行目(☆),
「宣言された」は「宣言されていた」。

5 行目(☆),
「有効にしてしまう」は,「有効にしてしまった」?

8 行目(★),
「可変な」は「変数」。

10 行目,
「導入している」の次はマルではなくセミコロン。

\vspace{3mm}

333 ページ,

索引は単なる原書の翻訳というわけにゆかないから,
本来ならばすべての項目にわたって自前でチェックしなければならないが,
時間がかかりすぎるので今回はあきらめて,
ざっとながめて気のついた点をいくつかあげておく。

「あいまい」……原書では「ambiguity, {\tt if-else}」のように
なっている。

「シフト演算子」……原書で shift operators を見ると訳書 60
ページにあたるページも載っている。

「単項演算子 \verb"~"」…… 51 ページにはそれらしきものは
出ていない。

「{\tt 0}」……原書ではこのあとに「octal constant」のような
説明がついている。

「-」(「+」の前の行)……アンダースコアのつもりだろうか? %
高さがおかしく,また「+」の前にあるのもおかしい。

「for(;;)無限グループ」……「無限ループ」の誤りであろう。

「NULL」……「{\tt NULL}」とすべきところ。

「\verb"ptrdiff_t" 型」「\verb"size_t" 型」……「\verb"fpos_t" 型名」
などにならえば「〜型名」とすべきところ。

\begin{flushright}
岩瀬順一
\end{flushright}

\end{document}