Memmove() i C og C++

Memmove I C Og C



I dag skal vi lære en av de viktige funksjonene til C- og C++-språket, som er memmove()-funksjonen. Men før det, la oss ta en rask titt på det grunnleggende om C- og C++-språkene. Vi vil også diskutere hvilke funksjoner som er i begge C/C++-språkene.

C-programmeringsspråket er enkelt og ganske effektivt til alle formål. Implementering av programvare som Windows OS, databaser, tolker og andre verktøy er mulig med den. C er et flott språk for nybegynnere å lære kodingen med. Det er derfor C-programmering er kjent som morsmålet siden det fungerer som grunnlaget for alle andre dataspråk. Grunnlaget for programmeringsspråket C++ er basert på ideene til objektorientert programmering (OOP). Brukeren kan enkelt utvikle og forstå programmets prinsipper siden C++ har en klar struktur. C\C++ programmeringsspråket er usedvanlig allsidig når det gjelder å utføre flere funksjoner og bytte en variabel fra en type til en annen. Memmove()-funksjonen er en av funksjonene til C/C++.







Memmove()-funksjonen overfører 'num' byte samtidig fra innholdet i minneblokken som er indikert av kilden til stedet angitt av destinasjonen. Memmove()-funksjonen er bare nyttig når kilde- og målobjektene overlapper hverandre og stopper den udefinerte oppførselen fra å oppstå. For å lære mer om memmove()-funksjonen, la oss grave dypt og se hvordan du implementerer syntaksen og eksemplene i memmove()-funksjonen.



Syntaks:

Her er den samme skrivestilen og implementeringen av memmove()-funksjonen for både C- og C++-språk. Først skriver vi nøkkelordet 'void' som betyr at hvis funksjonen ikke returnerer noen verdi, skriver vi navnet på funksjonen vi ønsker å implementere som er memmove()-funksjonen. I funksjonsparentesene skriver vi destinasjonen slik at vi kan plassere 'num' byte med nøkkelordet 'void'. Deretter skriver vi kildeplasseringen der vi får 'num' byte.







Parametere:

hånd: Adresse til lagringsstedet der dataene er kopiert.

src: Adresse til lagringsstedet som dataene kopieres fra.



telle: Mengde data som skal kopieres fra kilde til destinasjon.

Returverdi:

Til gjengjeld får vi adressen til målminneområdet. Dest returneres av memmove()-funksjonen.

Eksempel 1: Implementering av Memmove()-funksjonen i C

La oss begynne å implementere vårt aller første og enkle eksempel på C-språket. For å begynne å skrive trenger vi først en C-kompilator slik at vi kan skrive og kjøre programmet. For det, åpne C-kompilatoren og begynn å implementere programmet.

#include
#include

int main ( )
{
røye ch1 [ ] = { 'L' , 'Jeg' , 'n' , 'i' , 'x' } ;

int lengde = størrelsen på ( ch1 ) / størrelsen av ( ch1 [ 0 ] ) ;

printf ( 'Før du bruker memmove()-funksjonen: ' ) ;
til ( int Jeg = 0 ; Jeg < lengde; i++ )
{
printf ( '%c' , ch1 [ Jeg ] ) ;
}

røye * ch2 = & ch1 [ to ] ;
memmove ( ch2, ch1, størrelse på ( røye ) * to ) ;

printf ( ' \n \n Etter å ha brukt memmove()-funksjonen: ' ) ;

til ( int Jeg = 0 ; Jeg < 5 ; i++ )
{
printf ( '%c' , ch1 [ Jeg ] ) ;
}
komme tilbake 0 ;

}


Vi starter alltid med å inkorporere kjerneprogrammodulene etter å ha startet kompilatoren. Disse modulene er de medfølgende C-språkmodulene. Vi trenger ganske enkelt å skrive inn én kodelinje for å inkludere disse modulene, i motsetning til dusinvis av kodelinjer for å konstruere modulen. '#'-indikatoren informerer oversetteren om å laste modulen først før du bruker nøkkelordet 'inkluder' for å legge modulen til programmet. 'stdio.h'-modulen betyr at kompilatoren godtar dataene fra brukeren og viser dem til brukeren. Den andre modulen i programmet er '#include ', slik at vi kan bruke de strengrelaterte funksjonene i det eksisterende programmet.

Deretter starter vi main()-funksjonen slik at vi kan skrive selve kodelinjen som vi ønsker å implementere i programmet. I linje 6 erklærer vi tegnarraynavnet 'ch1' av typen karakter. Deretter tildeler vi en tegnverdi til den. Etter det beregner vi lengden på 'ch1' og skriver ut inngangsmatrisen 'ch1' ved å bruke 'for loop'.

Etter det erklærer vi pekeren til 'ch2'-matrisen av et typetegn og tildeler adressen til 'ch1'-matrisen til 'ch2'-matrisen. Deretter skriver vi det ut ved å bruke printf()-setningen. La oss se resultatet av forrige illustrasjon:

Eksempel 2: Implementering av Memmove()-funksjonen i C++

Her er det grunnleggende eksempelet som viser hvordan memmove()-funksjonen fungerer i C++-språket. For å begynne å skrive trenger vi først en C++ IDE slik at vi kan skrive og kjøre programmet. For det, åpne C++-kompilatoren og begynn å implementere programmet.

Etter å ha åpnet kompilatoren starter vi alltid med å inkludere header-filene som er nødvendige for C++-programmeringsspråket for at programmene skal kjøre. For å konstruere programmet og bruke memmove()-metoden, inkluderer vi først de to grunnleggende overskriftsfilene - 'iostream' og 'cstring'. C++ gir flere måter å jobbe med matriser og strenger på. Disse funksjonene gjøres tilgjengelige for bruk når overskriftsfilen er inkludert i et program med «#include  »-hodefilen som brukes til å kopiere et visst antall byte med data fra kilden til destinasjonen. Overskriftsfilen «#include » brukes for både inndata og utdata fra brukeren. Deretter bruker vi standard 'navneområde std' i koden vår for å bruke standardsyntaksen til programmeringsspråket C++ slik at vi kan forhindre at objektene, metodene og parameterne refererer til det samme omfanget gjennom hele programmet.

#include
#include
bruker navneområde std;

int main ( )
{
røye src [ femti ] = '1234567890' ;
røye dest [ femti ] = '0987654321' ;

cout << 'Før du bruker memmove til destinasjon: ' << start << endl;
memmove ( dest, src, 6 ) ;
cout << 'Etter å ha brukt memmove til destinasjon: ' << hender

komme tilbake 0 ;
}


Vi begynner å skrive main()-funksjonen for å starte utførelsen av en faktisk kodelinje. I linje 7 er det en to-tegns type matrise med lengde 50 som er deklarert som 'src[50]' og 'dest[50]'. Vi bruker 'cout'-setningen for å skrive ut meldingen 'Før du bruker memmove() til destinasjon: '. Deretter sender vi 'dest'-parameteren for å skrive ut verdien av 'dest'-matrisen. Deretter brukes memmove()-funksjonen på tegntypevariabelen erklært som 'src[50]' og 'dest[50]' for å overlappe det bestemte antallet byte fra opprinnelsen(src) til målet(dest) med antall 'telling'. Dette identifiserer antall byte som er kopiert fra 'src' til 'dest'. Som du kan se i følgende illustrasjon, erklærte vi '6' tellenummer.

Etter det bruker vi 'cout'-setningen igjen for å vise meldingen, 'Etter å ha brukt memmove() til Destination: ', og sender variabelen 'dest'-array av 'character'-typen. For å stoppe programmet fra å kjøre, må vi bruke en returerklæring ved programmets konklusjon. Vi returnerer deretter 0 til hovedfunksjonen, noe som indikerer at programmet er vellykket utført og oppnådd målet.

Du kan se i følgende utgang av memmove()-metoden at hvis det er overlapping, for eksempel når den første pekeren flyttes til bokstaven 6, fortsetter pekeren å skrive ut og følgende tegn vil overlappe. Denne C++-kodebiten ble kjørt og resultatene vises i følgende bilde:

Konklusjon

I denne artikkelen lærte vi om memmove()-funksjonen i programmeringsspråkene C og C++. Vi snakket om hvordan memmove()-funksjonen fungerer gjennom eksemplet med C og C++ med en detaljert forklaring av hver linje med kode. Vi håper at du finner denne artikkelen nyttig for å utvikle kunnskapen din om memmove()-funksjonen i C og C++.