Tänään aiomme oppia yhden C- ja C++-kielen tärkeistä toiminnoista, joka on memmove()-funktio. Mutta ennen sitä katsotaanpa nopeasti C- ja C++-kielten perusteet. Keskustelemme myös siitä, mitä toimintoja on molemmissa C/C++-kielissä.
C-ohjelmointikieli on helppo ja varsin tehokas kaikkiin tarkoituksiin. Ohjelmistojen, kuten Windows-käyttöjärjestelmän, tietokantojen, tulkkien ja muiden työkalujen käyttöönotto on mahdollista sen avulla. C on loistava kieli aloittelijoille koodauksen oppimiseen. Siksi C-ohjelmointi tunnetaan äidinkielenä, koska se toimii perustana kaikille muille tietokonekielille. C++-ohjelmointikielen perusta perustuu olio-ohjelmoinnin (OOP) ideoihin. Käyttäjä voi kehittää ja ymmärtää ohjelman periaatteet helposti, koska C++:lla on selkeä rakenne. C\C++-ohjelmointikieli on poikkeuksellisen monipuolinen useiden toimintojen suorittamisessa ja muuttujan vaihtamisessa tyypistä toiseen. Memmove()-funktio on yksi C/C++:n funktioista.
Memmove()-funktio siirtää 'num' tavua samanaikaisesti lähteen osoittaman muistilohkon sisällöstä kohteen osoittamaan paikkaan. memmove()-funktiosta on hyötyä vain, kun lähde- ja kohdeobjektit menevät päällekkäin ja estää määrittelemättömän toiminnan esiintymisen. Saadaksesi lisätietoja memmove()-funktiosta, kaivetaan syvälle ja katsotaan kuinka syntaksi ja esimerkit toteutetaan memmove()-funktiossa.
Syntaksi:
Tässä on sama kirjoitustyyli ja memmove()-funktion toteutus sekä C- että C++-kielille. Ensin kirjoitamme 'void'-avainsanan, mikä tarkoittaa, että jos funktio ei palauta mitään arvoa, kirjoitamme sen toiminnon nimen, jonka haluamme toteuttaa, joka on memmove()-funktio. Toimintosuluissa kirjoitamme määränpään, jotta voimme sijoittaa 'num'-tavut 'void'-avainsanalla. Sitten kirjoitamme lähdesijainnin, josta saamme 'num' tavut.
Parametrit:
käsi: Osoite tallennuspaikkaan, johon tiedot kopioidaan.
src: Osoite tallennuspaikkaan, josta tiedot kopioidaan.
Kreivi: Lähteestä kohteeseen kopioitavan tiedon määrä.
Palautusarvo:
Vastineeksi saamme osoitteen kohdemuistialueelle. Kohde palautetaan memmove()-funktiolla.
Esimerkki 1: Memmove()-funktion toteutus C:ssä
Aloitetaan ensimmäisen ja yksinkertaisen C-kielen esimerkkimme toteuttaminen. Kirjoittamisen aloittamiseksi tarvitsemme ensin C-kääntäjän, jotta voimme kirjoittaa ja suorittaa ohjelman. Tätä varten avaa C-kääntäjä ja aloita ohjelman toteuttaminen.
#include#include
int main ( )
{
char ch1 [ ] = { 'L' , 'minä' , 'n' , 'sisään' , 'x' } ;
int pituus = koko ( ch1 ) / koko ( ch1 [ 0 ] ) ;
printf ( 'Ennen memmove()-funktion käyttöä: ' ) ;
varten ( int i = 0 ; i < pituus; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}
hiiltyä * ch2 = & ch1 [ kaksi ] ;
muistaa ( ch2, ch1, sizeof ( hiiltyä ) * kaksi ) ;
printf ( ' \n \n Memmove()-funktion käytön jälkeen: ' ) ;
varten ( int i = 0 ; i < 5 ; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}
palata 0 ;
}
Aloitamme aina sisällyttämällä ydinohjelmamoduulit kääntäjän käynnistämisen jälkeen. Nämä moduulit ovat niputettuja C-kielimoduuleja. Meidän on yksinkertaisesti kirjoitettava yksi koodirivi sisällyttääksemme nämä moduulit, toisin kuin kymmeniä koodirivejä moduulin rakentamiseksi. '#'-ilmaisin kehottaa kääntäjää lataamaan moduulin ensin, ennen kuin käyttää 'include'-avainsanaa moduulin lisäämiseen ohjelmaan. Moduuli “stdio.h” tarkoittaa, että kääntäjä hyväksyy tiedot käyttäjältä ja näyttää ne käyttäjälle. Ohjelman toinen moduuli on “#include
Sitten käynnistämme main()-funktion, jotta voimme kirjoittaa varsinaisen koodirivin, jonka haluamme toteuttaa ohjelmassa. Rivillä 6 ilmoitamme merkkijonon nimen 'ch1', jonka tyyppi on merkki. Sitten annamme sille merkin arvon. Sen jälkeen laskemme 'ch1':n pituuden ja tulostamme syöttötaulukon 'ch1' käyttämällä 'for-silmukkaa'.
Tämän jälkeen julistamme osoittimen tyyppimerkin 'ch2'-taulukkoon ja määritämme 'ch1'-taulukon osoitteen 'ch2'-taulukolle. Sitten tulostamme sen printf()-käskyllä. Katsotaanpa edellisen kuvan tulosta:
Esimerkki 2: Memmove()-funktion toteutus C++:ssa
Tässä on perusesimerkki, joka näyttää kuinka memmove()-funktio toimii C++-kielellä. Kirjoittamisen aloittamiseksi tarvitsemme ensin C++ IDE:n, jotta voimme kirjoittaa ja suorittaa ohjelman. Tätä varten avaa C++-kääntäjä ja aloita ohjelman toteuttaminen.
Kääntäjän avaamisen jälkeen aloitamme aina sisällyttämällä siihen otsikkotiedostot, jotka ovat välttämättömiä C++-ohjelmointikielelle ohjelmien suorittamiseksi. Ohjelman rakentamiseksi ja memmove()-menetelmän käyttämiseksi sisällytämme ensin kaksi perusotsikkotiedostoa - 'iostream' ja 'cstring'. C++ tarjoaa useita tapoja työskennellä taulukoiden ja merkkijonojen kanssa. Nämä toiminnot ovat käytettävissä, kun otsikkotiedosto sisältyy ohjelmaan, jossa on otsikkotiedosto '#include
#include
käyttäen nimiavaruutta std;
int main ( )
{
char src [ viisikymmentä ] = '1234567890' ;
char dest [ viisikymmentä ] = '0987654321' ;
cout << 'Ennen kuin käytät muistikirjaa kohteeseen:' << alkaa << endl;
muistaa ( kohde, src, 6 ) ;
cout << 'Mummove to Destination -sovelluksen jälkeen:' << käsissä
palata 0 ;
}
Aloitamme main()-funktion kirjoittamisen aloittaaksemme varsinaisen koodirivin suorittamisen. Rivillä 7 on kahden merkin tyyppinen taulukko, jonka pituus on 50 ja joka on ilmoitettu 'src[50]' ja 'dest[50]'. Käytämme 'cout'-lausetta tulostaaksemme viestin 'Ennen memmove():n soveltamista kohteeseen:'. Sitten välitämme 'dest'-parametrin tulostaaksemme 'dest'-taulukon arvon. Tämän jälkeen memmove()-funktiota käytetään merkkityyppimuuttujaan, joka on ilmoitettu 'src[50]' ja 'dest[50]', jotta tietty tavumäärä alkuperästä (src) kohteeseen target(dest) menee päällekkäin. 'laskennan' numero. Tämä tunnistaa tavujen määrän, jotka kopioidaan 'src':stä 'dest':hen. Kuten seuraavasta kuvasta näet, ilmoitimme '6' -luvun.
Sen jälkeen käytämme 'cout'-käskyä uudelleen näyttääksemme viestin 'After Applying memmove() to Destination:' ja välitämme muuttujan 'dest'-taulukon 'character'-tyyppiseksi. Ohjelman toiminnan pysäyttämiseksi meidän on käytettävä return-lausetta ohjelman lopussa. Palaamme sitten 0:n päätoimintoon, mikä osoittaa, että ohjelma on suoritettu onnistuneesti ja saavuttanut tavoitteensa.
Voit nähdä seuraavasta memmove()-metodin lähdöstä, että jos päällekkäisyyttä esiintyy, esimerkiksi kun aloitusosoitin siirtyy kirjaimeen 6, osoitin jatkaa tulostusta ja seuraavat merkit menevät päällekkäin. Tämä C++-koodinpätkä ajettiin ja tulokset näkyvät seuraavassa kuvassa:
Johtopäätös
Tässä artikkelissa opimme memmove()-funktiosta C- ja C++-ohjelmointikielissä. Puhuimme memmove()-funktion toiminnasta C:n ja C++:n esimerkin kautta ja jokaisella koodirivillä on yksityiskohtainen selitys. Toivomme, että tämä artikkeli auttaa sinua kehittämään tietojasi C:n ja C++:n memmove()-funktiosta.