Memmove() C:ssä ja C++:ssa

Memmove C Ssa Ja C Ssa



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 ”, jotta voimme käyttää merkkijonoon liittyviä toimintoja olemassa olevassa ohjelmassa.

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  ', jota käytetään kopioimaan tietty määrä tavuja dataa lähteestä kohteeseen. Otsikkotiedostoa '#include ' käytetään sekä käyttäjän tietojen syöttämiseen että tulostukseen. Sitten käytämme koodissamme standardia 'nimiavaruuden std' käyttääksemme C++-ohjelmointikielen standardisyntaksia, jotta voimme estää objektit, menetelmät ja parametrit viittaamasta samaan laajuuteen koko ohjelmassa.

#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.