Memmove() C ir C++

Memmove C Ir C



Šiandien mes išmoksime vieną iš svarbių C ir C++ kalbų funkcijų, tai yra funkcija memmove (). Tačiau prieš tai trumpai pažvelkime į C ir C++ kalbų pagrindus. Taip pat aptarsime, kokios funkcijos yra abiejose C/C++ kalbose.

C programavimo kalba yra paprasta ir gana veiksminga visiems tikslams. Su juo galima įdiegti tokią programinę įrangą kaip Windows OS, duomenų bazės, vertėjai ir kiti įrankiai. C yra puiki kalba pradedantiesiems mokytis kodavimo. Štai kodėl C programavimas yra žinomas kaip pagrindinė kalba, nes jis yra visų kitų kompiuterių kalbų pagrindas. C++ programavimo kalbos pagrindas paremtas objektinio programavimo (OOP) idėjomis. Vartotojas gali lengvai kurti ir suprasti programos principus, nes C++ turi aiškią struktūrą. C\C++ programavimo kalba yra išskirtinai universali atliekant kelias funkcijas ir perjungiant kintamąjį iš vieno tipo į kitą. Funkcija memmove() yra viena iš C/C++ funkcijų.







Funkcija memmove () vienu metu perkelia „skaičius“ baitus iš atminties bloko, kurį nurodo šaltinis, turinio link paskirties vietos. Funkcija memmove() yra naudinga tik tada, kai šaltinio ir paskirties objektai sutampa ir sustabdo neapibrėžtą elgesį. Norėdami sužinoti daugiau apie funkciją memmove(), įsigilinkime ir pažiūrėkime, kaip įdiegti sintaksę ir pavyzdžius funkcijoje memmove().



Sintaksė:

Čia yra tas pats rašymo stilius ir funkcijos memmove() įgyvendinimas tiek C, tiek C++ kalboms. Pirmiausia parašome raktinį žodį „void“, o tai reiškia, kad jei funkcija negrąžina jokios reikšmės, rašome funkcijos, kurią norime įgyvendinti, pavadinimą, tai yra funkcija memmove(). Funkcijų skliausteliuose įrašome tikslą, kad galėtume baitų skaičių „skaičius“ patalpinti su raktiniu žodžiu „void“. Tada parašome šaltinio vietą, iš kurios gauname „baitų skaičių“.







Parametrai:

ranka: Saugojimo vietos, kurioje duomenys kopijuojami, adresas.

src: Saugojimo vietos, iš kurios kopijuojami duomenys, adresas.



skaičiuoti: Duomenų kiekis, kurį reikia nukopijuoti iš šaltinio į paskirties vietą.

Grąžinimo vertė:

Mainais gauname adresą į tikslinę atminties sritį. Tikslą grąžina funkcija memmove().

1 pavyzdys: Funkcijos Memmove() įgyvendinimas C

Pradėkime įgyvendinti savo pirmąjį ir paprastą C kalbos pavyzdį. Norėdami pradėti rašyti, pirmiausia mums reikia C kompiliatoriaus, kad galėtume rašyti ir vykdyti programą. Norėdami tai padaryti, atidarykite C kompiliatorių ir pradėkite įgyvendinti programą.

#include
#include

tarp pagrindinis ( )
{
char ch1 [ ] = { 'L' , 'aš' , 'n' , 'į' , 'x' } ;

int ilgis = dydisof ( ch1 ) / dydis ( ch1 [ 0 ] ) ;

printf ( 'Prieš taikydami funkciją memmove(): ) ;
dėl ( tarpt i = 0 ; i < ilgis; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}

char * ch2 = & ch1 [ du ] ;
prisiminti ( ch2, ch1, dydisof ( char ) * du ) ;

printf ( \n \n Pritaikius memmove() funkciją: ' ) ;

dėl ( tarpt i = 0 ; i < 5 ; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}
grąžinti 0 ;

}


Mes visada pradedame įtraukdami pagrindinius programos modulius paleidę kompiliatorių. Šie moduliai yra susieti C kalbos moduliai. Mums tiesiog reikia įvesti vieną kodo eilutę, kad įtrauktume šiuos modulius, o ne dešimtys kodo eilučių, kad sukurtume modulį. Indikatorius „#“ informuoja vertėją, kad pirmiausia įkeltų modulį, prieš naudojant raktinį žodį „įtraukti“, kad modulis būtų įtrauktas į programą. Modulis „stdio.h“ reiškia, kad kompiliatorius priima duomenis iš vartotojo ir parodo juos vartotojui. Antrasis programos modulis yra „#include “, kad galėtume naudoti su eilute susijusias funkcijas esamoje programoje.

Tada paleidžiame main() funkciją, kad galėtume parašyti tikrąją kodo eilutę, kurią norime įdiegti programoje. 6 eilutėje deklaruojame simbolių masyvo pavadinimą „ch1“ tipo simboliu. Tada jam priskiriame simbolio reikšmę. Po to apskaičiuojame „ch1“ ilgį ir atspausdiname įvesties masyvą „ch1“ naudodami „ciklą“.

Po to mes deklaruojame žymeklį į tipo simbolio „ch2“ masyvą ir „ch1“ masyvo adresą priskiriame „ch2“ masyvai. Tada spausdiname naudodami teiginį printf (). Pažiūrėkime ankstesnės iliustracijos išvestį:

2 pavyzdys: Funkcijos Memmove() įgyvendinimas C++

Čia yra pagrindinis pavyzdys, parodantis, kaip funkcija memmove() veikia C++ kalba. Norėdami pradėti rašyti, pirmiausia mums reikia C++ IDE, kad galėtume rašyti ir vykdyti programą. Norėdami tai padaryti, atidarykite C++ kompiliatorių ir pradėkite diegti programą.

Atidarę kompiliatorių, visada pradedame įtraukdami antraštės failus, kurie būtini C++ programavimo kalbai, kad programos veiktų. Norėdami sukurti programą ir naudoti memmove() metodą, pirmiausia įtraukiame du pagrindinius antraštės failus – „iostream“ ir „cstring“. C++ suteikia keletą būdų, kaip dirbti su masyvais ir eilutėmis. Šias funkcijas galima naudoti, kai antraštės failas yra įtrauktas į programą su „#include  “ antraštės failu, naudojamu tam tikram duomenų skaičiui nukopijuoti iš šaltinio į paskirties vietą. Antraštės failas „#include “  naudojamas vartotojo duomenims įvesti ir išvesti. Tada savo kode naudojame standartinę vardų erdvę std, kad galėtume naudoti standartinę C++ programavimo kalbos sintaksę, kad galėtume neleisti objektams, metodams ir parametrams nurodyti tos pačios apimties visoje programoje.

#include
#include
naudojant vardų sritį std;

tarp pagrindinis ( )
{
char src [ penkiasdešimt ] = '1234567890' ;
char dest [ penkiasdešimt ] = „0987654321“ ;

cout << „Prieš taikydami atmintinę į paskirties vietą: << pradėti << endl;
prisiminti ( dest, src, 6 ) ;
cout << „Afpyling memmove to Destination:“ << rankas

grąžinti 0 ;
}


Pradedame rašyti funkciją main(), kad pradėtume vykdyti tikrą kodo eilutę. 7 eilutėje yra dviejų simbolių tipo 50 ilgio masyvas, kuris deklaruojamas kaip „src[50]“ ir „dest[50]“. Naudojame teiginį „cout“, kad išspausdintume pranešimą „Prieš taikant memmove() paskirties vietai:“. Tada perduodame „dest“ parametrą, kad išspausdintume „dest“ masyvo reikšmę. Tada funkcija memmove() taikoma simbolio tipo kintamajam, deklaruojamam kaip „src[50]“ ir „dest[50]“, kad tam tikras baitų skaičius nuo kilmės (src) iki tikslo (dest) sutampa su „skaičiaus“ skaičius. Tai identifikuoja baitų, nukopijuotų iš „src“ į „dest“, skaičių. Kaip matote toliau pateiktoje iliustracijoje, mes paskelbėme skaičių „6“.

Po to vėl naudojame teiginį „cout“, kad būtų rodomas pranešimas „After Applying memmove() to Destination:“, ir perduodame „character“ tipo kintamąjį „dest“ masyvą. Norėdami sustabdyti programos paleidimą, programos pabaigoje turime panaudoti grąžinimo teiginį. Tada grąžiname 0 į pagrindinę funkciją, nurodant, kad programa sėkmingai vykdoma ir pasiekė savo tikslą.

Tolesnėje memmove() metodo išvestyje galite matyti, kad jei yra persidengimas, pavyzdžiui, pradiniam žymekliui pereinant prie 6 raidės, žymeklis toliau spausdinamas, o kiti simboliai sutampa. Šis C++ kodo fragmentas buvo paleistas, o rezultatai rodomi šiame paveikslėlyje:

Išvada

Šiame straipsnyje sužinojome apie funkciją memmove() C ir C++ programavimo kalbose. Mes kalbėjome apie tai, kaip veikia funkcija memmove () per C ir C++ pavyzdžius, išsamiai paaiškindami kiekvieną kodo eilutę. Tikimės, kad šis straipsnis padės jums tobulinti žinias apie memmove() funkciją C ir C++.