Memmove() v C a C++

Memmove V C A C



Dnes sa naučíme jednu z dôležitých funkcií jazyka C a C++, ktorou je funkcia memmove(). Ešte predtým sa však stručne pozrime na základy jazykov C a C++. Tiež si povieme, aké funkcie sú v oboch jazykoch C/C++.

Programovací jazyk C je jednoduchý a celkom efektívny na všetky účely. S ním je možná implementácia softvéru, ako je OS Windows, databázy, tlmočníci a ďalšie nástroje. C je skvelý jazyk pre začiatočníkov na učenie sa kódovania. Preto je programovanie v jazyku C známe ako materinský jazyk, pretože slúži ako základ pre všetky ostatné počítačové jazyky. Základ programovacieho jazyka C++ je založený na myšlienke objektovo orientovaného programovania (OOP). Užívateľ môže ľahko rozvíjať a pochopiť princípy programu, pretože C++ má jasnú štruktúru. Programovací jazyk C\C++ je mimoriadne všestranný pri vykonávaní viacerých funkcií a prepínaní premennej z jedného typu na druhý. Funkcia memmove() je jednou z funkcií C/C++.







Funkcia memmove() prenáša „num“ bajtov súčasne z obsahu pamäťového bloku, ktorý je označený zdrojom, do miesta označeného cieľom. Funkcia memmove() je užitočná len vtedy, keď sa zdrojové a cieľové objekty prekrývajú a bráni výskytu nedefinovaného správania. Ak sa chcete dozvedieť viac o funkcii memmove(), poďme sa ponoriť do hĺbky a uvidíme, ako implementovať syntax a príklady vo funkcii memmove().



Syntax:

Tu je rovnaký štýl písania a implementácia funkcie memmove() pre jazyky C aj C++. Najprv napíšeme kľúčové slovo „void“, čo znamená, že ak funkcia nevracia žiadnu hodnotu, napíšeme názov funkcie, ktorú chceme implementovať, čiže funkciu memmove(). Do hranatých zátvoriek funkcií napíšeme cieľ, aby sme mohli umiestniť bajty „num“ s kľúčovým slovom „void“. Potom zapíšeme zdrojové umiestnenie, odkiaľ získame „num“ bajtov.







Parametre:

ruka: Adresa miesta uloženia, do ktorého sa údaje skopírujú.

src: Adresa do miesta uloženia, z ktorého sa údaje skopírujú.



počítať: Množstvo údajov na kopírovanie zo zdroja do cieľa.

Návratová hodnota:

Na oplátku dostaneme adresu do cieľovej oblasti pamäte. Cieľ vráti funkcia memmove().

Príklad 1: Implementácia funkcie Memmove() v C

Začnime implementovať náš úplne prvý a jednoduchý príklad jazyka C. Aby sme mohli začať písať, potrebujeme najprv kompilátor C, aby sme mohli program napísať a spustiť. Za týmto účelom otvorte kompilátor C a začnite implementovať program.

#include
#include

int main ( )
{
char ch1 [ ] = { 'L' , 'ja' , 'n' , 'in' , 'X' } ;

int dĺžka = veľkosť ( ch1 ) / veľkosť ( ch1 [ 0 ] ) ;

printf ( 'Pred použitím funkcie memmove(): ' ) ;
pre ( int i = 0 ; i < dĺžka; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}

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

printf ( ' \n \n Po použití funkcie memmove(): ' ) ;

pre ( int i = 0 ; i < 5 ; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}
vrátiť 0 ;

}


Vždy začíname začlenením základných modulov programu po spustení kompilátora. Tieto moduly sú pribalené moduly jazyka C. Na zahrnutie týchto modulov jednoducho potrebujeme napísať jeden riadok kódu, na rozdiel od desiatok riadkov kódu na zostavenie modulu. Indikátor „#“ informuje prekladateľa, aby najskôr načítal modul pred použitím kľúčového slova „include“ na pridanie modulu do programu. Modul „stdio.h“ znamená, že kompilátor prijíma údaje od používateľa a zobrazuje ich používateľovi. Druhý modul programu je „#include “, aby sme mohli použiť funkcie súvisiace s reťazcom v existujúcom programe.

Potom spustíme funkciu main(), aby sme mohli napísať skutočný riadok kódu, ktorý chceme v programe implementovať. V riadku 6 deklarujeme názov poľa znakov „ch1“ typu znak. Potom mu priradíme hodnotu znaku. Potom vypočítame dĺžku „ch1“ a vytlačíme vstupné pole „ch1“ pomocou cyklu „for“.

Potom deklarujeme ukazovateľ na pole „ch2“ typového znaku a priradíme adresu poľa „ch1“ do poľa „ch2“. Potom ho vytlačíme pomocou príkazu printf(). Pozrime sa na výstup z predchádzajúcej ilustrácie:

Príklad 2: Implementácia funkcie Memmove() v C++

Tu je základný príklad, ktorý ukazuje, ako funguje funkcia memmove() v jazyku C++. Aby sme mohli začať písať, najprv potrebujeme C++ IDE, aby sme mohli program napísať a spustiť. Za týmto účelom otvorte kompilátor C++ a začnite implementovať program.

Po otvorení kompilátora vždy začíname zahrnutím hlavičkových súborov, ktoré sú potrebné pre programovací jazyk C++ na spustenie programov. Na zostavenie programu a použitie metódy memmove() najprv zahrnieme dva základné hlavičkové súbory – „iostream“ a „cstring“. C++ poskytuje niekoľko spôsobov práce s poľami a reťazcami. Tieto funkcie sú dostupné na použitie, keď je hlavičkový súbor zahrnutý v programe so súborom hlavičky „#include  “, ktorý sa používa na kopírovanie určitého počtu bajtov údajov zo zdroja do cieľa. Súbor hlavičky „#include “ sa používa na vstup aj výstup údajov od používateľa. Potom v našom kóde použijeme štandardný „namespace std“ na použitie štandardnej syntaxe programovacieho jazyka C++, aby sme mohli zabrániť tomu, aby objekty, metódy a parametre odkazovali na rovnaký rozsah v celom programe.

#include
#include
pomocou menného priestoru std;

int main ( )
{
char src [ päťdesiat ] = '1234567890' ;
char dest [ päťdesiat ] = '0987654321' ;

cout << 'Pred aplikáciou memmove to Destination: ' << začať << endl;
memmove ( dest, src, 6 ) ;
cout << 'Po použití poznámky k cieľu: ' << ruky

vrátiť 0 ;
}


Začneme písať funkciu main(), aby sme začali vykonávať skutočný riadok kódu. V riadku 7 je dvojznakové pole s dĺžkou 50, ktoré je deklarované ako „src[50]“ a „dest[50]“. Na vytlačenie správy „Pred použitím memmove() na cieľ: “ používame príkaz „cout“. Potom odovzdáme parameter „dest“, aby sme vypísali hodnotu poľa „dest“. Potom sa funkcia memmove() aplikuje na premennú typu znaku deklarovanú ako „src[50]“ a „dest[50]“, aby sa prekryl určitý počet bajtov z počiatku (src) do cieľa (dest) s číslo „počet“. Toto určuje počet bajtov, ktoré sa skopírujú z „src“ do „dest“. Ako môžete vidieť na nasledujúcom obrázku, deklarovali sme počet „6“.

Potom znova použijeme príkaz „cout“, aby sme zobrazili správu „Po použití memmove() na cieľ: “ a odovzdame pole premennej „dest“ typu „character“. Aby sme zastavili spustenie programu, musíme použiť príkaz return na konci programu. Potom vrátime 0 k hlavnej funkcii, čo znamená, že program sa úspešne vykonal a dosiahol svoj cieľ.

V nasledujúcom výstupe metódy memmove() môžete vidieť, že ak dôjde k prekrývaniu, napríklad keď sa počiatočný ukazovateľ presunie na písmeno 6, ukazovateľ sa naďalej tlačí a nasledujúce znaky sa budú prekrývať. Tento útržok kódu C++ bol spustený a výsledky sú zobrazené na nasledujúcom obrázku:

Záver

V tomto článku sme sa dozvedeli o funkcii memmove() v programovacích jazykoch C a C++. Hovorili sme o tom, ako funguje funkcia memmove() na príklade C a C++ s podrobným vysvetlením každého riadku kódu. Dúfame, že vám tento článok pomôže pri rozvíjaní vašich vedomostí o funkcii memmove() v C a C++.