Memmove() u C i C++

Memmove U C I C



Danas ćemo naučiti jednu od važnih funkcija jezika C i C++, a to je funkcija memmove(). Ali prije toga, pogledajmo na brzinu osnove jezika C i C++. Također ćemo raspravljati o funkcijama u oba jezika C/C++.

Programski jezik C je jednostavan i prilično učinkovit za sve namjene. Uz njega je moguća implementacija softvera kao što su Windows OS, baze podataka, tumači i drugi alati. C je izvrstan jezik za početnike za učenje kodiranja. Zato je programiranje C poznato kao materinski jezik jer služi kao temelj za sve ostale računalne jezike. Temelj programskog jezika C++ temelji se na idejama objektno orijentiranog programiranja (OOP). Korisnik može lako razviti i razumjeti principe programa jer C++ ima jasnu strukturu. Programski jezik C\C++ iznimno je svestran u izvođenju više funkcija i prebacivanju varijable iz jedne vrste u drugu. Funkcija memmove() je jedna od funkcija C/C++.







Funkcija memmove() prenosi 'num' bajtova istovremeno iz sadržaja memorijskog bloka koji je naznačen izvorom prema mjestu naznačenom odredištem. Funkcija memmove() je korisna samo kada se izvorni i odredišni objekti preklapaju i sprječava pojavu nedefiniranog ponašanja. Da biste saznali više o funkciji memmove(), kopajmo dublje i pogledajmo kako implementirati sintaksu i primjere u funkciji memmove().



Sintaksa:

Ovdje je isti stil pisanja i implementacija funkcije memmove() za jezike C i C++. Prvo pišemo ključnu riječ 'void' što znači da ako funkcija ne vrati nikakvu vrijednost, pišemo naziv funkcije koju želimo implementirati, a to je funkcija memmove(). U funkcijskim zagradama pišemo odredište kako bismo mogli smjestiti 'num' bajtove s ključnom riječi 'void'. Zatim pišemo izvornu lokaciju odakle dobivamo 'num' bajtova.







Parametri:

ruka: Adresa mjesta pohrane na kojem se podaci kopiraju.

src: Adresa mjesta pohrane s kojeg se podaci kopiraju.



računati: Količina podataka za kopiranje od izvora do odredišta.

Povratna vrijednost:

Zauzvrat dobivamo adresu ciljnog memorijskog područja. Dest vraća funkcija memmove().

Primjer 1: Implementacija funkcije Memmove() u C-u

Počnimo implementirati naš prvi i jednostavan primjer C jezika. Da bismo počeli pisati, prvo nam je potreban C prevodilac kako bismo mogli napisati i izvršiti program. Za to otvorite C kompajler i počnite implementirati program.

#include
#include

int glavni ( )
{
char ch1 [ ] = { 'L' , 'ja' , 'n' , 'u' , 'x' } ;

int duljina = sizeof ( ch1 ) / veličina ( ch1 [ 0 ] ) ;

printf ( 'Prije primjene funkcije memmove(): ' ) ;
za ( int ja = 0 ; ja < duljina; i++ )
{
printf ( '%c' , ch1 [ ja ] ) ;
}

char * ch2 = i ch1 [ dva ] ;
memmove ( ch2, ch1, veličinaof ( char ) * dva ) ;

printf ( ' \n \n Nakon primjene funkcije memmove(): ' ) ;

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

}


Uvijek počinjemo uključivanjem osnovnih programskih modula nakon pokretanja kompajlera. Ovi moduli su moduli C jezika u paketu. Jednostavno trebamo upisati jedan redak koda da bismo uključili te module, za razliku od desetaka redaka koda za konstrukciju modula. Indikator '#' obavještava prevoditelja da najprije učita modul prije upotrebe ključne riječi 'include' za dodavanje modula u program. Modul “stdio.h” znači da prevoditelj prihvaća podatke od korisnika i prikazuje ih korisniku. Drugi modul programa je “#include ” tako da možemo koristiti funkcije povezane sa stringovima u postojećem programu.

Zatim pokrećemo funkciju main() kako bismo mogli napisati stvarni redak koda koji želimo implementirati u program. U retku 6 deklariramo naziv niza znakova “ch1” tipa character. Zatim mu dodijelimo vrijednost znaka. Nakon toga izračunavamo duljinu 'ch1' i ispisujemo ulazni niz 'ch1' pomoću 'for petlje'.

Nakon toga, deklariramo pokazivač na polje “ch2” znaka tipa i dodjeljujemo adresu polja “ch1” polju “ch2”. Zatim ga ispisujemo pomoću naredbe printf(). Pogledajmo rezultat prethodne ilustracije:

Primjer 2: Implementacija funkcije Memmove() u C++

Ovdje je osnovni primjer koji pokazuje kako funkcija memmove() radi u jeziku C++. Da bismo počeli pisati, prvo nam je potreban C++ IDE kako bismo mogli napisati i izvršiti program. Za to otvorite C++ prevodilac i počnite implementirati program.

Nakon otvaranja kompajlera uvijek počinjemo uključivanjem datoteka zaglavlja koje su neophodne za programski jezik C++ za pokretanje programa. Da bismo konstruirali program i koristili metodu memmove(), prvo uključujemo dvije temeljne datoteke zaglavlja – “iostream” i “cstring”. C++ nudi nekoliko načina za rad s nizovima i nizovima. Ove su funkcije dostupne za upotrebu kada je datoteka zaglavlja uključena u program s datotekom zaglavlja '#include ' koja se koristi za kopiranje određenog broja bajtova podataka od izvora do odredišta. Datoteka zaglavlja “#include ”  koristi se i za unos i za izlaz podataka od korisnika. Zatim koristimo standardni 'namespace std' u našem kodu za korištenje standardne sintakse programskog jezika C++ kako bismo spriječili da objekti, metode i parametri upućuju na isti opseg u cijelom programu.

#include
#include
korištenje imenskog prostora std;

int glavni ( )
{
char src [ pedeset ] = '1234567890' ;
char dest [ pedeset ] = '0987654321' ;

cout << 'Prije primjene memma pomaknite se na odredište: ' << početak << endl;
memmove ( odredište, src, 6 ) ;
cout << 'Nakon primjene memma premjestite se na odredište: ' << ruke

povratak 0 ;
}


Počinjemo pisati funkciju main() kako bismo započeli izvršavanje stvarne linije koda. U retku 7 nalazi se polje tipa od dva znaka duljine 50 koje je deklarirano kao “src[50]” i “dest[50]”. Koristimo naredbu “cout” za ispis poruke, “Prije primjene memmove() na odredište:”. Zatim prosljeđujemo parametar 'dest' za ispis vrijednosti niza 'dest'. Zatim se funkcija memmove() primjenjuje na varijablu vrste znakova deklariranu kao 'src[50]' i 'dest[50]' za preklapanje određenog broja bajtova od origin(src) do cilja (dest) s broj “count”. Ovo identificira broj bajtova koji se kopiraju iz 'src' u 'dest'. Kao što možete vidjeti na sljedećoj ilustraciji, deklarirali smo broj brojanja '6'.

Nakon toga ponovno koristimo naredbu “cout” za prikaz poruke “Nakon primjene memmove() na odredište:” i prosljeđujemo niz varijabli “dest” tipa “character”. Da bismo zaustavili izvođenje programa, moramo upotrijebiti naredbu return na završetku programa. Zatim vraćamo 0 glavnoj funkciji, pokazujući da je program uspješno izvršen i da je postigao svoj cilj.

U sljedećem izlazu metode memmove() možete vidjeti da ako postoji preklapanje, na primjer, kada se početni pokazivač pomakne na slovo 6, pokazivač se nastavlja ispisivati ​​i sljedeći znakovi će se preklapati. Ovaj C++ isječak koda je pokrenut i rezultati su prikazani na sljedećoj slici:

Zaključak

U ovom smo članku naučili o funkciji memmove() u programskim jezicima C i C++. Razgovarali smo o tome kako funkcionira funkcija memmove() kroz primjer C i C++ uz detaljno objašnjenje svake linije koda. Nadamo se da će vam ovaj članak biti od pomoći u razvoju vašeg znanja o funkciji memmove() u C i C++.