ユーザ言語プログラムでは、さまざまな型の変数を定義して、EAGLE データ構造で利用できるさまざまな種類の情報を表すことができます。4 つの基本的なデータ タイプは次のとおりです。
これらの基本的なデータ タイプの他に、EAGLE データ ファイルに格納されるデータ構造を表す高度なオブジェクト タイプもあります。
特殊なデータ タイプ void は、関数の戻り値の型としてのみ使用され、この関数は何も値を返さないことを示します。
| データ タイプ | 使用法: | Size |
|---|---|---|
| char | データ タイプ char は、アルファベットの文字や符号なしの小さい数字など、1 つの文字を格納するために使用されます。 | char 型の変数のサイズは 8 ビット(1 バイト)で、0 ~ 255 の範囲の値を格納できます。 |
| int | データ タイプ int は、オブジェクトの座標など、符号付き整数値を格納するために使用されます。 | int 型の変数のサイズは 32 ビット(4 バイト)で、-2147483648 ~ 2147483647 の範囲の値を格納できます。 |
| リアルな | データ タイプ real は、グリッド距離など、符号付き浮動小数点値を格納するために使用されます。 | real 型の変数のサイズは 64 ビット(8 バイト)で、±2.2e-308 ~ ±1.7e+308 の範囲の値(精度 15 桁)を格納できます。 |
| string | データ タイプ string は、パーツやネットの名前など、テキスト情報を格納するために使用されます。 | string 型の変数のサイズは制限されません(十分な空きメモリがある場合)。 |
string 型の変数は、明示的なサイズを指定せずに定義されます。これらは、プログラムの実行中に必要に応じて自動的に拡張されます。
文字列変数の要素は int 型で示され、[インデックス]を使用して個別にアクセスできます。文字列の先頭文字のインデックスは 0 になります。
string s = "Layout";
printf("Third char is: %c\n", s[2]);この場合、文字「y」が出力されます。s[2] が s の 3 番目の文字を返すことに注意してください。標準 ASCII 文字列では、欠落なしで文字に変換することができます。
string s = "Layout";
char c = s[2];データ タイプ string は、実際にはネイティブ C 言語タイプのゼロ終端文字列と同様に実装されています。次の変数定義を見てみます。
string s = "abcde";
s[4] は文字「e」、s[5] は文字「\0」(または整数値 0x00)です。このことから、次のように、strlen() 関数を使用せずに文字列の終端を判別することができます。
for (int i = 0; s[i]; ++i) {
// do something with s[i]
}また、文字列内にゼロ文字を「挿入」することで文字列の部分を「除去」することも、まったく問題ありません。
string s = "abcde";
s[3] = 0;これにより、s の値は「abc」になります。ゼロ文字に続くすべての文字は実際に失われ、元の文字を復元することで元に戻すことはできないことに注意してください。文字を 0 に設定するその他の操作(--s[3] など)にも同じことがあてはまります。
a + b (a と b の数値演算型は異なる)などの数値演算式の結果の型は、2 つのオペランド型のうち「大きい方」に等しくなります。数値演算型は、char、int、および real (この順序)です。したがって、たとえば a が int 型で b が real 型の場合、式 a + b の結果は real 型になります。
数値演算式の結果の型は、型変換を適用することで別の数値演算型に明示的に変換できます。型変換の一般的な構文は type(expression) です。ここで、type は char、int、または real のいずれかで、expression は任意の算術式です。
real 型の式を int 型に変換すると、値の小数部は切り捨てられます。