Sign in Join
Wiki copytemporary

^/fi: what changed

Revision 9 to 10. Removed lines have a minus sign; added lines have a plus sign.

Title: ^/fi &/fi

OldNewLine
1-^
1+&
22
3-[[ASCII/fi|ASCII:ssa]] merkkikoodi `94` desimaalisena (tai [[Hexadecimal/fi|heksadesimaalisena]] `5E`) on määritelty `^` (circumflex-aksentti) merkiksi.
3+[[ASCII/fi|ASCII]]:ssa merkkikoodi jonka arvo on desimaalisena `38` (tai [[Hexadecimal/fi|$]]`26`) määritellään olevan `&` (lausutaan "et").
44
5-Jokaista tietotyyppiä varten voidaan osoittaa dataa [[Pointer/fi|osoittimen tyypillä (pointer)]] operaattorin `^` avulla joka on [[Data type/fi|tietotyypin]] edessä.
5+## Pascal
66
7-``` pascal
8-program pointerDemo(input, output, stderr);
7+### Oktaalijärjestelmä
98
10-type
11- listItem = record
12- payload: integer;
13- // next _points_ _to_ a list item
14- next: ^listItem;
15- end;
9+[[Pascal/fi|Pascalissa]] `&` merkitsee oktaalilukua.
1610
17-var
18- start: ^listItem;
11+``` pascal
12+program messageNo(input, output, stderr);
1913
14+uses
15+ baseUnix;
16+
2017begin
21- new(start);
22- if not assigned(start) then
23- begin
24- writeLn(stderr, 'obtaining memory for start failed');
25- halt(1);
26- end;
18+ // withdraw group write access to current terminal
19+ // equivalent to invoking: mesg n
20+ fpChmod('/dev/stdin', &0600);
21+end.
2722```
2823
29-Osoitinta (`pointer`) voidaan seurata, jos se on liitetty lisäämällä [[Identifier/fi|tunnisteeseen]] `^`. Sen sijaan, että muistin osoite olisi käsillä, niin nähdään sen osoittaman muistin sisältö. Jos kyseessä on tyypitetty osoitin (typed pointer), kyseisen tyypin toiminnot ja syntaksit ovat voimassa, esim. [[Becomes/fi|saa arvokseen]] seuraavassa esimerkissä.
24+Oktaalijärjestelmässä vain merkit välitä `0` ja `7` ovat sallittuja.
3025
26+Ohjeellisena huomautuksena että käytännön ohjelmissa edellä oleva esimerkissä olisi parempi kirjoittaa:
27+
3128``` pascal
32- // _de-reference_ the pointer, i.e. follow it
33- start^.payload := 7;
34-
35- dispose(start);
36-end.
29+fpChmod('/dev/stdin', S_IRUSR or S_IWUSR);
3730```
3831
39-Pyrkimys seurata [[Nil/fi|nil]] osoitinta aiheuttaa kuitenkin [[runtime error/fi|ajonaikaisen virheen]] (RTE 216 “general protection fault”). Tilanne on, että ehto, `not assigned(start)` rivillä 15, on tarkoitus saada kiinni.
32+koska se on merkityksellisempää kuin raaka lukuarvo. Pascal on korkean tason kieli. Käytetään tätä etua. Joten kirjoitetaan, mitä tarkoitetaan, ei sitä mitä tietokone todella tekee.
4033
41-## Katso myös
34+### Tunnistetieto
4235
43-- [[$pointerMath/fi|{$pointerMath off}]] ei salli osoittimien käyttöä aritmeettisissa lausekkeissa
44-- [[$typedAddress/fi|{$typedAddress on}]] yhdessä [[@|@-osoiteoperaattorin kanssa]]
45-- [[$modeSwitch/fi|{$modeSwitch autoDeref-}]]
36+[[FPC/fi|FreePascal]] julisti takautuvasti joitakin uusia [[Reserved word/fi|varattuja sanoja]]. Jotta FPC kykenisi kääntämään vanhan koodin ajantasaisella [[Compiler/fi|kääntäjän]] versiolla, joka saattaisi epäonnistua näiden uusien varattujen sanojen takia, FPC julisti `&`-merkin "pakomerkiksi". Täten kääntäjä hyväksyy todellisen varatun sanan kelvolliseksi [[Identifier/fi|tunnistimeksi]] ilman koodin uudelleenlähettämistä, mutta pakenemaan, eli antamalla tunnisteen ja lähettämällä tunnisteen. Uudessa koodissa on kuitenkin oltava erilaiset tunnusnimet ilman tätä ominaisuutta.
4637
38+## Lazarus
39+
40+[[Lazarus/fi|Lazaruksessa]] `&`-merkkiä käytetään
41+
42+- ilmaisemaan pikanäppäimiä [[TMenuItem]]
43+
4744---
48-*From the Free Pascal wiki, page "^/fi", as it stood on 2023-02-18 after a change by Kai Burghardt, 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).*
45+*From the Free Pascal wiki, page "&/fi", as it stood on 2022-08-06 after a change by Kai Burghardt, 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