以下のメッセージを削除します。


[2080] Re:【C言語ポインタ完全制覇】3-1-2 Cの宣言を解読する
返信


投稿者:knwifuru
2017/12/22 09:15:25

Link:
>># あ、本の中の英語の文章ですが、可算名詞に冠詞が抜けているものが少なからず
>>ありました…
>
>これはK&Rのdclもそうなっているからいいだろう、ということで付けていません。
>第2版では、p.163に注の形で言い訳を入れました。
>(韓国語版では、訳者の方が足してくれたりしたようですが)
># この注で、「declでも付けていませんし」とあるのはdclの間違いですね…
># 後ほど正誤表に挙げます。

あ、本当だ!
この件に関しては、第2版を確認せずに投稿しちゃってました… (^^;

確かに、K&$第二版日本語版のp149の、dcl『の実行結果』も、冠詞が抜けています。
原著第二版(1988)のp122ページの『実行出力』でも、ありませんね。

また、"Pointers on C" (Kenneth A. Reek, Addison Wesley(1988))のp355で
紹介されている、cdeclというプログラム
https://cdecl.org/
https://github.com/ridiculousfish/cdecl-blocks
『の出力』でも、冠詞は省略しているみたいですね。

   $ cdecl
   Type `help' or `?' for help
   cdecl> explain int(*f)(void);
   declare f as pointer to function (void) returning int

しかし、これは、あくまでプログラム出力を簡潔にするためだと思います。

実際、"C - A Reference Manual (5ed.)"(Harbison & Steel, Prentice Hall (2002))の
4 Declarationsという章の最初のページ(p73)にも

  Declarations in C are difficult to describe for several reasons. First, they
  involve some unusual syntax that may be confusing to the novice.  For example,
  the declaration
     int (*f) (volid);
  declares a pointer to a function taking no arguments and returning an integer.

と、文章ではきちんと冠詞をつけていることからも、英語としては冠詞が必要である
ことが明らかですし、K&R原著第二版で配列が最初に説明される 1.6 Arrays (p22)で
でだって、本文文章では

  The declaration
     int ndigit[10];
  declares ndigit to be an array of 10 integers.

と書かれています。

というわけで、プログラム出力は兎も角として、解説の文章では(第2版でも仰っている
ように)必要な冠詞を抜かさず英語としてまともな文章になさるほうが良いと、僕は
思います。

パスワード:

管理者削除