Sign in Join
Wiki copytemporary

@/fr: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-\
2-
3-<div style="float:left; margin: 0 25px 20px 0; padding:50px; font-size:500%; font-family: Georgia; background-color: #f9f9f9; border: 2px solid #777777;">
4-
51@
62
7-</div>
3+
84
9-L'opérateur d'adessage @ retourne l'adresse d'une [[variable/fr|variable]], d'une [[Procedure/fr|procédure]] ou d'une [[Function|fonction]].
5+
6+L'opérateur d'adessage @ retourne l'adresse d'une [variable](</index.php?title=variable/fr&action=edit&redlink=1> "variable/fr \(page does not exist\)"), d'une [[Procedure/fr|procédure]] ou d'une [[Function|fonction]].
107
11-L'opérateur d'adresse @ renvoie l'adresse d'un identifiant associé à une adresse (généralement une variable ou une routine, mais aussi une étiquette).
8+
129
13-Normalement, la valeur que @ renvoie est un pointeur non typé. Si vous gérez beaucoup de pointeurs et que vous souhaitez atténuer les problèmes de transmission de références de cible de type incorrect, vous devez utiliser la directive {\$ typedaddress on}.
10+
1411
15-Voici un exemple qui démontre ce qui produit avec des pointeurs non typés, du code valide et fonctionnel, mais qui génère sémantiquement un résultat erroné:
12+L'opérateur d'adresse @ renvoie l'adresse d'un identifiant associé à une adresse (généralement une variable ou une routine, mais aussi une étiquette).
1613
17-``` pascal
18-program untypedAddressDemo(input, output, stderr);
14+Normalement, la valeur que @ renvoie est un pointeur non typé. Si vous gérez beaucoup de pointeurs et que vous souhaitez atténuer les problèmes de transmission de références de cible de type incorrect, vous devez utiliser la directive {$ typedaddress on}.
1915
20- procedure incrementIntByRef(const ref: PByte);
21- begin
22- inc(ref^);
23- end;
24- var
25- foo: integer;
26- begin
27- foo := -1;
28- incrementIntByRef(@foo);
29- writeLn(foo);
30- end.
16+Voici un exemple qui démontre ce qui produit avec des pointeurs non typés, du code valide et fonctionnel, mais qui génère sémantiquement un résultat erroné:
3117```
18+program untypedAddressDemo(input, output, stderr);
19+
20+ procedure incrementIntByRef(const ref: PByte);
21+ begin
22+ inc(ref^);
23+ end;
24+ var
25+ foo: integer;
26+ begin
27+ foo := -1;
28+ incrementIntByRef(@foo);
29+ writeLn(foo);
30+ end.
31+```
3232
33-Il était prévu d'obtenir 0 (zéro), mais le programme renvoie -256 à la place. Avec {\$ typedaddress on}, la compilation échoue avec une erreur de type incompatible. Vous attendez généralement ce dernier comportement (échec de compilation) au lieu de perdre du temps avec des heures de débogage.
33+Il était prévu d'obtenir 0 (zéro), mais le programme renvoie -256 à la place. Avec {$ typedaddress on}, la compilation échoue avec une erreur de type incompatible. Vous attendez généralement ce dernier comportement (échec de compilation) au lieu de perdre du temps avec des heures de débogage.
3434
35-Autres remarques
35+Autres remarques
36+```
37+En ASCII, le caractère @ (signe AT): a la valeur 64.
38+```
3639
37-`    En ASCII, le caractère @ (signe AT): a la valeur 64.`
40+
3841
3942## Read more
4043
41-- [L'opérateur @](http://www.freepascal.org/docs-html/ref/refse69.html)
44+ * [L'opérateur @](<http://www.freepascal.org/docs-html/ref/refse69.html>)
4245
43-- [Opérateur typé d'adresse (@)](http://www.freepascal.org/docs-html/prog/progsu69.html)
46+ * [Opérateur typé d'adresse (@) ](<http://www.freepascal.org/docs-html/prog/progsu69.html>)
4447
4548---
46-*From the Free Pascal wiki, page "@/fr", as it stood on 2020-01-25 after a change by Bart, 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).*
47-Category: Symbols/fr
49+*From the Free Pascal wiki, page "@/fr", as the Internet Archive kept it on 2024-07-14. 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