Programación variante

Es muy simple. La palabra clave case va seguida de un tipo determinado y luego el número de secuencia de la rama es consistente con el tipo, por ejemplo:

Tipo

IntRec1 = Registro empaquetado.

ID: cadena corta;

enteros en mayúsculas y minúsculas

3: (

parámetro: Entero);

5: (

ParamLo: Palabra;

param hi: Byte

Fin;

IntRec2 = Registro empaquetado<); /p>

ID: cadena corta;

Características del caso

c ': (

parámetro: entero);

e ': (

ParamLo: Palabra;

param hi: Byte

End;

IntRec3 = Registro empaquetado

ID: cadena corta;

Valores booleanos entre mayúsculas y minúsculas

Verdadero: (

parámetro: entero);

Falso : (

ParamLo: Palabra;

param hi: Byte

Fin

1, parámetro superior y ParamLo/ParamHi); Son dos variantes de estructuras con diferentes ramas. Puede usar el campo Param para acceder directamente a la parte entera de la variable, o puede usar el campo ParamLo para acceder a los 16 bits inferiores (palabras) de la parte entera y el campo ParamH I para acceder a los 8 bits superiores (bytes). ).

2. El tamaño de la estructura variante depende de la rama que ocupa el mayor espacio, como Integer (4 bytes)>; Word (2 bytes) Byte (1 byte), por lo que las tres preguntas. para esta pregunta El tamaño de la estructura de la variante es 256 4 = 260 bytes.

3. Siempre que el tipo después del caso sea coherente con el tipo del identificador de rama, el identificador de rama se puede escribir de forma informal (Entero y 3, 5, Char y 'c', 'e'). , Booleano y Verdadero, Falso). Los tres métodos de declaración anteriores declaran todos el mismo tipo.

4. Para acceder con precisión al dominio de la estructura variante, generalmente se agrega la palabra clave empaquetada para evitar que el compilador se alinee automáticamente.

5. La estructura variante no se usa ampliamente en la programación diaria, pero sí se usa ampliamente en la traducción de la API de Windows.