Memmove() C ja C++ keeles

Memmove C Ja C Keeles



Täna õpime ühte C ja C++ keele olulistest funktsioonidest, milleks on memmove() funktsioon. Kuid enne seda vaatame kiiresti C ja C++ keelte põhitõdesid. Samuti arutame, millised funktsioonid on mõlemas C/C++ keeles.

Programmeerimiskeel C on lihtne ja kõigil eesmärkidel üsna tõhus. Sellega on võimalik rakendada tarkvara, nagu Windows OS, andmebaasid, tõlgid ja muud tööriistad. C on suurepärane keel algajatele kodeerimise õppimiseks. Seetõttu tuntakse C-programmeerimist emakeelena, kuna see on kõigi teiste arvutikeelte alus. Programmeerimiskeele C++ vundament põhineb objektorienteeritud programmeerimise (OOP) ideedel. Kasutaja saab programmi põhimõtteid hõlpsalt arendada ja mõista, kuna C++ on selge ülesehitusega. Programmeerimiskeel C\C++ on erakordselt mitmekülgne mitme funktsiooni täitmisel ja muutuja vahetamisel ühelt tüübilt teisele. Funktsioon memmove() on üks C/C++ funktsioonidest.







Funktsioon memmove() kannab allika poolt näidatud mäluploki sisust samaaegselt üle 'num' baite sihtkoha näidatud asukohta. Funktsioon memmove() on kasulik ainult siis, kui lähte- ja sihtobjektid kattuvad ja peatab määratlemata käitumise. Funktsiooni memmove() kohta lisateabe saamiseks uurime süntaksit ja näiteid funktsioonis memmove() süntaksit.



Süntaks:

Siin on sama kirjutamisstiil ja funktsiooni memmove() rakendamine nii C kui ka C++ keelte jaoks. Esiteks kirjutame märksõna 'void', mis tähendab, et kui funktsioon väärtust ei tagasta, kirjutame selle funktsiooni nime, mida tahame rakendada, mis on funktsioon memmove(). Funktsioonisulgudesse kirjutame sihtkoha, et saaksime 'num' baite paigutada märksõnaga 'void'. Seejärel kirjutame lähtekoha, kust saame baitide arvu.







Parameetrid:

käsi: Aadress salvestuskohale, kuhu andmed kopeeritakse.

src: Aadress salvestuskohale, kust andmed kopeeritakse.



arv: Andmete hulk, mida kopeerida allikast sihtkohta.

Tagastusväärtus:

Vastutasuks saame aadressi sihtmälu alale. Sihtkoha tagastab funktsioon memmove().

Näide 1: funktsiooni Memmove() rakendamine C-s

Alustame oma esimese ja lihtsa C-keele näite rakendamist. Kirjutamise alustamiseks vajame esmalt C-kompilaatorit, et saaksime programmi kirjutada ja käivitada. Selleks avage C-kompilaator ja alustage programmi juurutamist.

#include
#include

int main ( )
{
char ch1 [ ] = { 'L' , 'mina' , 'n' , 'sisse' , 'x' } ;

int pikkus = suurus ( ch1 ) / suurus ( ch1 [ 0 ] ) ;

printf ( 'Enne funktsiooni memmove() rakendamist: ' ) ;
jaoks ( int i = 0 ; i < pikkus; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}

char * ch2 = & ch1 [ kaks ] ;
memmove ( ch2, ch1, sizeof ( char ) * kaks ) ;

printf ( ' \n \n Pärast funktsiooni memmove() rakendamist: ' ) ;

jaoks ( int i = 0 ; i < 5 ; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}
tagasi 0 ;

}


Alustame alati programmi põhimoodulite kaasamisest pärast kompilaatori käivitamist. Need moodulid on komplekteeritud C-keele moodulid. Nende moodulite lisamiseks peame lihtsalt sisestama ühe koodirea, mitte aga kümneid koodiridu mooduli koostamiseks. Näidik “#” teavitab tõlkijat mooduli esmalt laadimisest, enne kui kasutab mooduli programmi lisamiseks märksõna “include”. Moodul “stdio.h” tähendab, et kompilaator võtab kasutajalt saadud andmed vastu ja näitab neid kasutajale. Programmi teine ​​moodul on “#include ”, et saaksime olemasolevas programmis kasutada stringiga seotud funktsioone.

Seejärel käivitame funktsiooni main(), et saaksime kirjutada tegeliku koodirea, mida soovime programmis rakendada. Real 6 deklareerime märgimassiivi nime 'ch1' tüüpi karakteriga. Seejärel määrame sellele tähemärgi väärtuse. Pärast seda arvutame välja “ch1” pikkuse ja prindime sisendmassiivi “ch1”, kasutades “for loop”.

Pärast seda deklareerime kursori tüübimärgi massiivile 'ch2' ja määrame massiivi 'ch1' aadressi massiivile 'ch2'. Seejärel prindime selle printf() lause abil. Vaatame eelmise illustratsiooni väljundit:

Näide 2: Funktsiooni Memmove() rakendamine C++-s

Siin on põhinäide, mis näitab, kuidas funktsioon memmove() töötab C++ keeles. Kirjutamise alustamiseks vajame esmalt C++ IDE-d, et saaksime programmi kirjutada ja käivitada. Selleks avage C++ kompilaator ja alustage programmi juurutamist.

Pärast kompilaatori avamist alustame alati päisefailide kaasamisega, mis on programmide töötamiseks vajalikud C++ programmeerimiskeele jaoks. Programmi koostamiseks ja meetodi memmove() kasutamiseks lisame esmalt kaks põhilist päisefaili – 'iostream' ja 'cstring'. C++ pakub massiivide ja stringidega töötamiseks mitmeid viise. Need funktsioonid on kasutamiseks kättesaadavad, kui päisefail sisaldub programmis päisefailiga „#include  ”, mida kasutatakse teatud arvu baitide andmete kopeerimiseks allikast sihtkohta. Päisefaili “#include ” kasutatakse nii kasutaja andmete sisestamiseks kui ka väljundiks. Seejärel kasutame oma koodis standardset nimeruumi std, et kasutada C++ programmeerimiskeele standardset süntaksit, et saaksime takistada objektidel, meetoditel ja parameetritel viitamast samale ulatusele kogu programmis.

#include
#include
kasutades nimeruumi std;

int main ( )
{
char src [ viiskümmend ] = '1234567890' ;
char dest [ viiskümmend ] = '0987654321' ;

cout << 'Enne memmove to Destination rakendamist:' << alustada << endl;
memmove ( siht, src, 6 ) ;
cout << 'Pärast memmove to Destination rakendamist:' << käed

tagasi 0 ;
}


Alustame funktsiooni main() kirjutamist, et alustada tegeliku koodirea täitmist. Real 7 on kahe märgiga tüüpi massiiv pikkusega 50, mis on deklareeritud kui 'src[50]' ja 'dest[50]'. Sõnumi 'Enne memmove() rakendamist sihtkohale:' printimiseks kasutame lauset 'cout'. Seejärel edastame parameetri „dest”, et printida massiivi „dest” väärtus. Seejärel rakendatakse funktsiooni memmove() märgitüüpi muutujale, mis on deklareeritud kui 'src[50]' ja 'dest[50]', et katta teatud arv baite lähtekohast (src) kuni sihtmärgini (dest) 'loenduse' arv. See identifitseerib baitide arvu, mis kopeeritakse 'src'-st 'dest'. Nagu näete järgmiselt jooniselt, deklareerisime arvu '6'.

Pärast seda kasutame uuesti käsku 'cout', et kuvada teade 'Pärast memmove() rakendamist sihtkohale:' ja edastame 'character' tüüpi muutuja 'dest' massiivi. Programmi töötamise peatamiseks peame programmi lõpus kasutama tagastuslauset. Seejärel tagastame põhifunktsioonile 0, mis näitab, et programm on edukalt käivitatud ja saavutanud oma eesmärgi.

Memmove() meetodi järgmises väljundis on näha, et kui esineb kattumist, näiteks kui esialgne kursor liigub tähele 6, siis kursor jätkab printimist ja järgmised märgid kattuvad. See C++ koodilõik käivitati ja tulemused kuvatakse järgmisel pildil:

Järeldus

Selles artiklis õppisime memmove() funktsiooni kohta C ja C++ programmeerimiskeeltes. Memmove() funktsiooni toimimisest rääkisime C ja C++ näitel koos iga koodirea üksikasjaliku selgitusega. Loodame, et see artikkel aitab teil arendada oma teadmisi C ja C++ funktsiooni memmove() kohta.