プログラミング言語C – 識別子、整数定数

津路です。

引き続き、プログラミング言語C 第2版 ANSI規格準拠 K&R著(共立出版)を読んで、気になるところを書いています。
今回は、付録となっている参照マニュアルについて取り上げます。
ここも、詳しく述べられていて、重要です。
まず、A2.3 識別子です。
「識別子は、英字と数字の列である。最初の文字は英字でなければならない。下線記号は英字に属する。」
原文からすると、「下線記号(アンダースコア)は、英字としてカウントする。」という意味です。
「名前はいくら長くてもよい。内部的な識別子については、最初の少なくとも31文字は有効である。処理系によってはこれよりもっと長いこともある。」
原文は、
「Identifiers may have any length, and for internal identifiers, at least the first 31 characters are significant; some implementations may make more characters significant.」
なので、
「識別子の長さは任意だが、内部識別子では、少なくとも最初の31文字が有効であり、処理系によっては。。。」
と、同じような意味ですが、実際には、コンパイラによって違い、現在は認識範囲が広いです。

「内部的な識別子には、プリプロセッサのマクロ名や外部とのリンクをもたない他のすべての名前が含まれる。」
上記の原文は、
「Internal identifiers include preprocessor macro names and all other names that do not have external linkage (§A11.2)」
外部リンクは、A11.2で説明されています。extern 宣言される変数や関数などが例です。

A2.5 定数
以下にあげるように数種の定数があり、それぞれがデータ型をもつ。基本型についてはA4.2節で述べる。
constant:
integer-constant
character-constant
floating-constant
enumeration -constant
書籍では、上記が訳されていません。
順に、整数定数、文字定数、浮動小数点定数、列挙定数、です。

A2.5.1 整定数
「整定数の型はその形、値および接尾子によって決まる。接尾子がなくて10進であれば、型はその値が表されうる次の型の最初のものとなる。:int, long int, unsigned long int.」
原文は、
「The type of an integer constant depends on its form, value and suffix. If it is unsuffixed and decimal, it has the first of these types in which its value can be represented: int, long int, unsigned long int.」
です。
「型はその値が表されうる次の型の最初のものとなる」の品詞の係り方が私にはわかりにくかったです。
「接尾子がなくて10進数であれば、以下の型のうちの、その値を表すことのできる、最初の型である。」ではいかがでしょうか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください