Up|<<Prev|Next>>


10.3 データ 定数のCDL表記

この節は定数のCDL表記についての説明です。

属性はCDL記述の variables 部において、 属性の型と 長さを決める定数のリストを与えることによって、 初期化されます。(NetCDFライブラリへのC と FORTRAN の手続きインターフェースにおいては、属性の型と名前は定義されるときに明記されなければならない。) CDLは、異なるNetCDF型で区別がつくように、定数値の構文を記述している。 CDL定数の構文はC構文と似ているが、 int double から区別するために、 型の接尾子が short floatに添えてある。

バイト定数は単一の文字、又は、シングルクオートで囲んだ複数文字のエスケープ列で表現されます。例えば、

'a'     // ASCII a
'\0'    // null文字
'\n'    // ASCII 改行文字
'\33'   // ASCII エスケープ文字(8進数で33)
'\x2b'  // ASCII プラス (16進数で2b)
'\376'  // 8進数で377 = 10進数で-127 (又は 254)

文字定数はダブルクオートで囲まれています。 文字配列はダブルクオートで囲んだ文字列として表現できます。複数の文字列は単一の文字配列にと連結されます。 これによって、長い文字配列を複数の行に 書くことが出来ます。複数の可変長の文字列値をサポートするためには、 `,' のような規約的な区切り文字を使用することができるが、このような文字列区切りのための規約はNetCDFライブラリ層の上のソフトウェアに実装されていなければなりません。通常のC文字列のエスケープ規約はそのまま使用できます。 例えば、

"a"            // ASCII `a'
"Two\nlines\n" // 2つの改行文字を埋め込んだ 10文字の文字列 
"a bell:\007"  // ASCIIベルを含む文字列
"ab","cde"     // "abcde"と同じ

short 定数の形式は `s' 又は `S' を付加した整定数である。 short 定数が `0' で始まれば、8進数であると解釈されます。 `0x' で始まれば、16進数の整数として解釈されます。例えば、

2s      // short型の 2
0123s   // 8進数
0x7ffs  // 16進数

int 定数の形式は普通の整定数です。 int 定数が `0' で始まれば、それは8進数であると解釈されます。 `0x' で始まれば、16進数として解釈されます。有効な int 定数の例を幾つか挙げます。

-2
0123            // 8進数
0x7ff           // 16進数
1234567890L     // 現在では使用されない。古いlong接尾子を使用している。

float 型は有効数字7桁の精度を持つデータを表現するのに適しています。 float 定数の形式は C 浮動小数点定数に `f' 又は `F' を付加したものと同じです。 CDL float では整数と区別するために小数点が必要です。次に挙げる例は全て、妥当な float 定数です。

-2.0f
3.14159265358979f       // 低精度に丸められる
1.f
.1f

double 型は有効数字16桁の精度を持つデータを表現するのに適しています。 double 定数の形式はC 浮動小数点定数と同じです。オプションとして `d' 又は `D' を付加しても構いません。 integer と区別するために、CDL double には小数点が必要です。 次に挙げる例は全て妥当な double 定数です。

-2.0
3.141592653589793
1.0e-20
1.d

Up|<<Prev|Next>>