register ja const
Vihjeet ja muuttumattomuus.
register ja const on ilmainen C Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu C Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C Academy-kurssilla on yhteensä 4 oppituntia.
register-vihje
register ehdottaa muuttujan säilyttämistä suorittimen rekisterissä nopeuden parantamiseksi. Se on vain vihje, jonka nykyiset kääntäjät yleensä ohittavat.
#include <stdio.h>
int main(void) {
register int i;
int sum = 0;
for (i = 0; i < 5; i++)
sum += i;
printf("sum = %d\n", sum);
return 0;
}Sen osoitetta ei voi ottaa
Koska register-muuttuja ei välttämättä sijaitse muistissa, sen osoitetta ei voi ottaa operaattorilla &.
#include <stdio.h>
int main(void) {
register int x = 10;
printf("x = %d\n", x);
return 0;
}Miksi register-määritettä käytetään nykyään harvoin
Optimoivat kääntäjät sijoittavat usein käytetyt muuttujat jo rekistereihin. Avainsana on nykyään lähinnä historiallinen.
#include <stdio.h>
int main(void) {
int product = 1;
for (register int i = 1; i <= 4; i++)
product *= i;
printf("product = %d\n", product);
return 0;
}const-määrite
const tekee muuttujasta vain luku -muuttujan alustamisen jälkeen. Sen muuttaminen aiheuttaa käännösvirheen.
#include <stdio.h>
int main(void) {
const int DAYS = 7;
printf("DAYS = %d\n", DAYS);
return 0;
}Vakiot ilmaisevat tarkoituksen
const-määritteen käyttäminen kiinteille arvoille tekee koodista selkeämpää ja suojaa tahattomilta muutoksilta.
#include <stdio.h>
int main(void) {
const double PI = 3.14159;
double r = 2.0;
printf("area = %.2f\n", PI * r * r);
return 0;
}const osoittimien kanssa
const int *p tarkoittaa, ettei osoittimen p kautta osoitettua arvoa voi muuttaa. Osoitin itse voi edelleen osoittaa muualle.
#include <stdio.h>
int main(void) {
int x = 5;
const int *p = &x;
printf("*p = %d\n", *p);
return 0;
}Vakiomääräinen osoitin
int * const p tarkoittaa, ettei osoitin voi muuttua, mutta sen osoittamaa arvoa voi muuttaa.
#include <stdio.h>
int main(void) {
int x = 5;
int * const p = &x;
*p = 9;
printf("x = %d\n", x);
return 0;
}const-funktion parametrit
Parametrin merkitseminen const-määritteellä lupaa, ettei funktio muuta sitä. Tämä auttaa kutsujaa ymmärtämään toiminnan.
#include <stdio.h>
void show(const int n) {
printf("n = %d\n", n);
}
int main(void) {
show(42);
return 0;
}Muuttumattomuus suunnitteluperiaatteena
Käyttäkää const-määritettä kaikille arvoille, joiden ei pitäisi muuttua. Se havaitsee virheet käännösaikana.
#include <stdio.h>
int main(void) {
const int LIMIT = 100;
int x = 90;
if (x < LIMIT)
printf("under limit\n");
return 0;
}const-määrite ja globaalit muuttujat
Globaali const-muuttuja on turvallinen, jaettu vakio, joka on käytettävissä koko tiedostossa.
#include <stdio.h>
const int VERSION = 2;
int main(void) {
printf("VERSION = %d\n", VERSION);
return 0;
}register ja const yhdessä
Voitte merkitä silmukkalaskurin molemmilla määritteillä, vaikka const tarkoittaa tässä, ettei silmukan runko saa muuttaa sitä.
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 0; i < 3; i++) {
const int doubled = i * 2;
sum += doubled;
}
printf("sum = %d\n", sum);
return 0;
}Pikatarkistus
Testatkaa ymmärryksenne register- ja const-määritteistä.
Kertaus: register ja const
Opitte kaksi määritettä.
registervihjaa rekisteritallennuksesta, mutta yleensä ohitetaan- Register-muuttujan osoitetta ei voi ottaa
consttekee arvosta vain luettavan- Osoittimien const-määritteellä on kaksi muotoa: const-arvo ja const-osoitin
- Käyttäkää
const-määritettä runsaasti turvallisuuden lisäämiseksi
Opi C tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 39
- Oppitunnit
- 144
Usein kysytyt kysymykset
Onko oppitunti ”register ja const” ilmainen?
Kyllä – oppitunnin ”register ja const” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko C Academy-kurssin, päivitä CoddyKit PROhon. C Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”register ja const”?
Vihjeet ja muuttumattomuus. Harjoittelet C Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni C Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin C Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”register ja const”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä C Academy-oppitunnilla?
Kyllä. Jokainen C Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.