180 likes | 402 Views
Programmeerimiskeel C. Süntaks: Lauseehitus. Lihtlause lõpeb semikooloniga Liitlause koosneb lihtlausetest, mis on loogsulgudega ümbritsetud. Järjestikulise täitmise tehe – komaga eraldatud lihtlaused. Lihtlause1(); Lihtlause2(); { LiitlauseOsa1(); LiitlauseOsa2; }
E N D
Süntaks: Lauseehitus • Lihtlause lõpeb semikooloniga • Liitlause koosneb lihtlausetest, mis on loogsulgudega ümbritsetud. • Järjestikulise täitmise tehe – komaga eraldatud lihtlaused. Lihtlause1(); Lihtlause2(); { LiitlauseOsa1(); LiitlauseOsa2; } Lihtlause1(), Lihtlause2(); ;
Süntaks: Valged eraldajad Valged sümbolid (tühemikud): • Tühik • Tabulaator • Reavahetus Eralduse tüübid: • Kohustuslik eraldus – vähemalt 1 tühemik • Vabatahtlik eraldus – tühemik võib puududa, kuid tühemikke võib olla ka piiramatul arvul.
Andmetüübid • Laialtlevinud andmetüübid • int • bool • float • WinAVR’i andmetüübid • Märgiga täisarvud: int8_t, int16_t, int32_t • Märgita täisarvud: uint8_t, uint16_t, uint32_t
Nimed • Suuri ja väikeseid tähti eristatakse • Nimi võib sisaldada ainult suuri ja väikeseid ladinatähti, numbreid ja alakriipsusid. • Nimi ei või alata numbri sümboliga
Võimalikud ja võimatud nimed • g6h8K977 • 6gH8_977 • _2 • ____ • EELMINE • järgmine
Muutujate deklareerimine • Tüübi nimi • Kohustuslik eraldus • Muutuja nimi • Vabatahtlik eraldus • [Koma • Vabatahtlik eraldus • Muutuja nimi • Vabatahtlik eraldus] • Semikoolon int8_t a; bool k, p ,s, o; uint16_t y, x, z; Int32_t k = 3, e = 5, f = k + 1;
Omistamine i = i + 2; ADD i, 2 // Liidab i’le kahe ja kirjutab vastuse registrisse AX MOV AX, i // Kirjutab AX’i väärtuse muutujasse i i + 2 i
Omistamine: ülesanne int16_tu = (5 + 11) / 2; int16_tf, g, h = g = f = u; int16_tk, e = 5 - (k = u + 1);
Skoop • Avalik skoop on üle kõigi lähtefailide ühes projektis • Failisisene skoop on ühe faili piires • Kohalik skoop on loogsulgude vahel
Tõeväärtus • Tõeväärtus on üks kahest võimalikust väärtusest: • Tõene - true • Väär – false • Tõeväärtuse andmetüübiks on bool
Lausestruktuurid: if - lause start: CMP a, 0 // Võrdle a’d ja nulli JZ else_begin // Kui ZERO lipp on // püsti, siis järgmine // täidetav käsk asub // lipikuga else_begin // tähistatud aadressil CALL a_is_true JMP else_end else_begin: CALL a_is_false else_end: bool a; if (a) { a_is_true(); } else { a_is_false(); }
while - lause start: CMP a, 0 JZ end CALL do_something JMP start end: bool a; while (a) { do_something(); }
for - lause int8_t h, k = 4; h = 1; while (h < k) { do_something(); h++ } int8_t h, k = 4; for (h = 1; h < k; h++) { do_something(); } =