10.3 データ定数の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
Quadralay Corporation http://www.webworks.com Voice: (512) 719-3399 Fax: (512) 719-3606 sales@webworks.com |