Memmove() C és C++ nyelven

Memmove C Es C Nyelven



Ma a C és C++ nyelv egyik fontos funkcióját fogjuk megtanulni, ez a memmove() függvény. De előtte vessünk egy gyors pillantást a C és C++ nyelvek alapjaira. Azt is megvitatjuk, hogy milyen függvények vannak mindkét C/C++ nyelvben.

A C programozási nyelv egyszerű és meglehetősen hatékony minden célra. Szoftverek, például Windows operációs rendszer, adatbázisok, tolmácsok és egyéb eszközök megvalósítása lehetséges vele. A C remek nyelv kezdőknek, hogy megtanulják a kódolást. Ez az oka annak, hogy a C programozást anyanyelvként ismerik, mivel ez szolgál minden más számítógépes nyelv alapjául. A C++ programozási nyelv alapja az objektum-orientált programozás (OOP) elgondolásán alapul. A felhasználó könnyen fejlesztheti és megértheti a program alapelveit, mivel a C++ világos felépítésű. A C\C++ programozási nyelv kivételesen sokoldalúan képes több funkciót végrehajtani, és egy változót egyik típusról a másikra váltani. A memmove() függvény a C/C++ egyik funkciója.







A memmove() függvény egyidejűleg „szám” bájtot továbbít a forrás által jelzett memóriablokk tartalmából a cél által jelzett helyre. A memmove() függvény csak akkor hasznos, ha a forrás- és a célobjektum átfedi egymást, és megakadályozza a meghatározatlan viselkedés előfordulását. Ha többet szeretne megtudni a memmove() függvényről, ássunk mélyre, és nézzük meg, hogyan valósítsuk meg a szintaxist és a példákat a memmove() függvényben.



Szintaxis:

Itt ugyanaz az írási stílus és a memmove() függvény megvalósítása mind C, mind C++ nyelven. Először írjuk a „void” kulcsszót, ami azt jelenti, hogy ha a függvény nem ad vissza semmilyen értéket, akkor megírjuk annak a függvénynek a nevét, amelyet szeretnénk megvalósítani, ami a memmove() függvény. A függvény zárójelébe írjuk a célt, hogy a „num” byte-okat a „void” kulcsszóval el tudjuk helyezni. Ezután megírjuk a forrás helyét, ahonnan megkapjuk a „szám” bájtot.







Paraméterek:

kéz: Annak a tárolóhelynek a címe, ahová az adatokat másolták.

src: Annak a tárolási helynek a címe, ahonnan az adatokat másolják.



számol: A forrásból a célba másolandó adatmennyiség.

Visszatérési érték:

Cserébe megkapjuk a cél memóriaterület címét. A célt a memmove() függvény adja vissza.

1. példa: A Memmove() függvény megvalósítása C-ben

Kezdjük el megvalósítani a C nyelv legelső és egyszerű példáját. Az írás megkezdéséhez először egy C fordítóra van szükségünk, hogy meg tudjuk írni és végrehajtani a programot. Ehhez nyissa meg a C fordítót, és kezdje el a program megvalósítását.

#include
#include

int fő ( )
{
char ch1 [ ] = { 'L' , 'én' , 'n' , 'ban ben' , 'x' } ;

int hossz = sizeof ( ch1 ) / mérete ( ch1 [ 0 ] ) ;

printf ( 'A memmove() függvény alkalmazása előtt: ' ) ;
számára ( int én = 0 ; én < hossz; i++ )
{
printf ( '%c' , ch1 [ én ] ) ;
}

char * ch2 = & ch1 [ két ] ;
memmove ( ch2, ch1, sizeof ( char ) * két ) ;

printf ( ' \n \n A memmove() függvény alkalmazása után: ' ) ;

számára ( int én = 0 ; én < 5 ; i++ )
{
printf ( '%c' , ch1 [ én ] ) ;
}
Visszatérés 0 ;

}


Mindig az alapvető programmodulok beépítésével kezdjük a fordító elindítása után. Ezek a modulok a csomagban lévő C nyelvi modulok. Egyszerűen csak egy kódsort kell begépelnünk, hogy beépítsük ezeket a modulokat, szemben a több tucat kódsorral a modul felépítéséhez. A „#” jelző tájékoztatja a fordítót, hogy először töltse be a modult, mielőtt az „include” kulcsszót használja a modul programhoz való hozzáadásához. Az „stdio.h” modul azt jelenti, hogy a fordító elfogadja az adatokat a felhasználótól és megmutatja a felhasználónak. A program második modulja a „#include ”, hogy a meglévő programban tudjuk használni a karakterlánchoz kapcsolódó függvényeket.

Ezután elindítjuk a main() függvényt, hogy megírhassuk azt a tényleges kódsort, amelyet a programban szeretnénk megvalósítani. A 6. sorban deklaráljuk a karakter típusú „ch1” karaktertömb nevét. Ezután egy karakterértéket rendelünk hozzá. Ezt követően kiszámítjuk a „ch1” hosszát, és kinyomtatjuk a „ch1” bemeneti tömböt a „for ciklus” segítségével.

Ezt követően deklaráljuk a mutatót egy típusú karakter „ch2” tömbjére, és hozzárendeljük a „ch1” tömb címét a „ch2” tömbhöz. Ezután kinyomtatjuk a printf() utasítás segítségével. Lássuk az előző illusztráció kimenetét:

2. példa: A Memmove() függvény megvalósítása C++ nyelven

Íme az alapvető példa, amely bemutatja, hogyan működik a memmove() függvény a C++ nyelven. Az írás megkezdéséhez először szükségünk van egy C++ IDE-re, hogy meg tudjuk írni és végrehajtani a programot. Ehhez nyissa meg a C++ fordítót, és indítsa el a program megvalósítását.

A fordító megnyitása után mindig azzal kezdjük, hogy belefoglaljuk azokat a fejlécfájlokat, amelyek a C++ programozási nyelvhez szükségesek a programok futtatásához. A program felépítéséhez és a memmove() metódus használatához először bele kell foglalnunk a két alapvető fejlécfájlt – „iostream” és „cstring”. A C++ számos módot biztosít a tömbök és karakterláncok kezelésére. Ezeket a funkciókat akkor használhatjuk, ha a fejlécfájl egy „#include  ” fejlécfájllal szerepel egy programban, amely bizonyos számú bájtnyi adat másolására szolgál a forrásból a célba. A „#include ” fejlécfájlt a felhasználó adatainak bevitelére és kimenetére egyaránt használják. Ezután a szabványos „névteret std” használjuk a kódunkban, hogy a C++ programozási nyelv szabványos szintaxisát használjuk, így megakadályozhatjuk, hogy az objektumok, metódusok és paraméterek ugyanarra a hatókörre hivatkozzanak a teljes programban.

#include
#include
névtér használata std;

int fő ( )
{
char src [ ötven ] = '1234567890' ;
char dest [ ötven ] = '0987654321' ;

cout << 'Mielőtt a memmove alkalmazást adná meg: ' << Rajt << endl;
memmove ( cél, src, 6 ) ;
cout << 'Miután Appyling memmove to Destination:' << kezek

Visszatérés 0 ;
}


Elkezdjük írni a main() függvényt, hogy elindítsuk egy tényleges kódsor végrehajtását. A 7. sorban van egy 50 hosszúságú kétkarakteres típusú tömb, amely „src[50]” és „dest[50]”-ként van deklarálva. A „cout” utasítást használjuk a „Memmove() alkalmazása előtt a célállomásra:” üzenet kinyomtatására. Ezután átadjuk a „dest” paramétert, hogy kinyomtassuk a „dest” tömb értékét. Ezután a memmove() függvényt alkalmazzuk az „src[50]” és „dest[50]” karaktertípusú változóra, hogy átfedje a bizonyos számú bájtot az eredettől (src) a target(dest)ig. a „számlálás” száma. Ez azonosítja az „src”-ből „dest”-be másolt bájtok számát. Amint az a következő ábrán látható, „6” számot adtunk meg.

Ezt követően ismét a „cout” utasítással jelenítjük meg az „After Applying memmove() to Destination:” üzenetet, és adjuk át a „dest” változó „character” típusú tömbjét. A program futásának leállításához egy return utasítást kell használnunk a program végén. Ezután 0-val térünk vissza a fő függvényhez, jelezve, hogy a program sikeresen lefutott és elérte a célját.

A memmove() metódus következő kimenetén látható, hogy ha átfedés van, például amikor a kezdő mutató a 6-os betűre áll, a mutató tovább nyomtat, és a következő karakterek átfedik egymást. Ez a C++ kódrészlet lefutott, és az eredmények a következő képen jelennek meg:

Következtetés

Ebben a cikkben megismertük a memmove() függvényt C és C++ programozási nyelvekben. A memmove() függvény működéséről a C és a C++ példáján keresztül beszéltünk, minden kódsor részletes magyarázatával. Reméljük, hogy ez a cikk hasznosnak találja a C és C++ memmove() függvényével kapcsolatos ismereteit.