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