Sign in Join
Wiki copytemporary

Enum Type/fr: what changed

Revision 3 to 4. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11Plage de valeurs:\
22Celle d'un Longword.\
33Besoins en mémoire:\
44par défaut, un énuméré est stocké dans un Longword et nécessite 4 octets. Mais en fonction de la bascule {\$PACKENUM x} (abrégée {\$Zx}) et de la plage de valeur du type de données, elle peut être ajustée.
55
6-<caption>Occupation en mémoire</caption>
7-<tbody>
8-
9-ou {$PACKENUM 4} ou {$Z4}</td>
6+**Occupation en mémoire**
107
11-</tbody>
8+| Valeur maximale de l'énuméré | <= 255 | <= 65535 | > 65535 |
9+|---|---|---|---|
10+| aucune bascule ou {$PACKENUM DEFAULT} · ou {$PACKENUM 4} ou {$Z4} | 4 | 4 | 4 |
11+| {$PACKENUM 2} ou {$Z2} | 2 | 2 | 4 |
12+| {$PACKENUM 1} ou {$Z1} | 1 | 2 | 4 |
1213
1314On note immédiatement que, par défaut, le compilateur ne cherche pas à optimiser l'occupation mémoire.\
1415Propriétés:\
1516Les données de type **Enum type** sont une énumération d'entiers non signés constantes.\
1617Par défaut, la valeur d'une des constantes énumérées est égale à celle de la précédente augmentée de 1, la première vaut 0.
1718
1819``` pascal
1920Type
2021 {$PACKENUM 2}
2122 LargeEnum = (Null, Eins, Zwei);
2223```
2324
2425Il est possible de donner une autre valeur à l'une des constantes, les suivantes poursuivent alors l'incrémentation à partir de cette valeur.
2526
2627``` pascal
2728Type
2829 {$PACKENUM 4}
2930 SmallEnum = (Sechs := 6, Sieben, Acht);
3031```
3132
3233``` pascal
3334Type
3435 {$PACKENUM 1}
3536 MiddleEnum = (Null, Zehn := 10, Elf, Zwoelf);
3637```
3738
3839> **Warning:** Dans une telle énumération, l'emploi de Succ et Pred n'est plus permis, le compilateur signale une erreur.
3940
4041Exemples d'affectation de valeurs du type Enum:
4142
4243``` pascal
4344Var
4445 S : SmallEnum;
4546 M : MiddleEnum;
4647 L : LargeEnum;
4748```
4849
4950Exemples de conversion d'Enum en autre de type de donnée:
5051
5152``` pascal
5253 Application.MessageBox(PChar(IntToStr(Qword(Ord(Sechs)))),'Konvertierung',MB_OK);
5354 Application.MessageBox(PChar(IntToStr(Qword(Ord(S.Sechs)))),'Konvertierung',MB_OK);
5455```
5556
5657---
5758*From the Free Pascal wiki, page "Enum Type/fr", as it stood on 2020-02-14 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history