Tipos de datos

Un programa de idioma de usuario puede definir variables de distintos tipos, que representan los distintos tipos de información disponibles en las estructuras de datos de EAGLE. Los cuatro tipos de datos básicos son

Además de estos tipos de datos básicos, también existen tipos de objeto de alto nivel, que representan las estructuras de datos almacenadas en los archivos de datos de EAGLE.

El tipo de datos especial void se utiliza únicamente como tipo de valor devuelto de una función, lo que indica que esta función no devuelve ningún valor.

Tipo de datos Uso Tamaño
char El tipo de datos char se utiliza para almacenar caracteres únicos, como las letras del alfabeto, o números pequeños sin signo. Una variable de tipo char tiene un tamaño de 8 bits (un byte) y puede almacenar cualquier valor en el rango 0..255.
int El tipo de datos int se utiliza para almacenar valores integrales con signo, como las coordenadas de un objeto. Una variable de tipo int tiene un tamaño de 32 bits (cuatro bytes) y puede almacenar cualquier valor en el rango de -2147483648 a 2147483647.
real El tipo de datos real se utiliza para almacenar valores de coma flotante con signo, como la distancia de rejilla. Una variable de tipo real tiene un tamaño de 64 bits (ocho bytes) y puede almacenar cualquier valor en el rango ±2.2e-308 a ±1.7e+308 con una precisión de 15 dígitos.
string La cadena de tipo de datos se utiliza para almacenar información textual, como el nombre de una pieza o una red. Una variable de tipo string no está limitada en su tamaño (siempre que haya suficiente memoria disponible).

Acceso a índices de string

Las variables de tipo string se definen sin un tamaño explícito. Aumentan automáticamente según sea necesario durante la ejecución del programa.

Los elementos de una variable string son de tipo int y se puede acceder a ellos individualmente mediante [index]. El primer carácter de una cadena tiene el índice 0:

string s = "Layout";
printf("Third char is: %c\n", s[2]);

De este modo se imprimirá el carácter “y”. Tenga en cuenta que s[2] devuelve el tercer carácter de s! Es posible realizar una conversión sin pérdidas a char para strings ASCII estándar:

string s = "Layout";
char c = s[2];

Detalles de implementación

La cadena de tipo de datos se implementa realmente como cadenas terminadas cero de tipo C nativo. Eche un vistazo a la siguiente definición de variable

string s = "abcde";

s[4] es el carácter “e” y s[5] es el carácter “\0” o el valor entero 0x00. Este hecho se puede utilizar para determinar el final de una cadena sin utilizar la función strlen(), como en

for (int i = 0; s[i]; ++i) {
    // do something with s[i]
    }

También es perfectamente aceptable "cortar" parte de una cadena "perforando" un carácter cero en ella:

string s = "abcde";
s[3] = 0;

Esto hará que se tenga el valor "abc". Tenga en cuenta que todo lo que sigue al carácter cero desaparecerá realmente y no volverá restaurando el carácter original. Lo mismo se aplica a cualquier otra operación que establezca un carácter en 0, por ejemplo --s[3].

Conversiones de tipos

El tipo de resultado de una expresión aritmética, como a + b, donde a y b son tipos aritméticos diferentes, es igual al "mayor" de los dos tipos de operando. Los tipos aritméticos son char, int y real (en ese orden). Por lo tanto, si, por ejemplo, a es del tipo int y b es del tipo real, el resultado de la expresión a + b sería real.

Typecast

El tipo de resultado de una expresión aritmética se puede convertir explícitamente en un tipo aritmético diferente aplicándole un tipo de texto. La sintaxis general de una typecast es type(expression), donde type es char, int o real, y expression es cualquier expresión aritmética.

Al escribir una expresión real en int, la parte fraccionaria del valor se trunca.