Memmove() i C og C++

Memmove I C Og C



I dag skal vi lære en af ​​de vigtige funktioner i C- og C++-sproget, som er memmove()-funktionen. Men før det, lad os tage et hurtigt kig på det grundlæggende i C- og C++-sprogene. Vi vil også diskutere, hvilke funktioner der er i begge C/C++ sprog.

C-programmeringssproget er nemt og ganske effektivt til alle formål. Implementering af software såsom Windows OS, databaser, tolke og andre værktøjer er mulig med det. C er et fantastisk sprog for begyndere at lære kodningen med. Derfor er C-programmering kendt som modersproget, da det fungerer som grundlaget for alle andre computersprog. Grundlaget for C++ programmeringssproget er baseret på ideerne om objektorienteret programmering (OOP). Brugeren kan nemt udvikle og forstå programmets principper, da C++ har en klar struktur. C\C++ programmeringssproget er usædvanligt alsidigt til at udføre flere funktioner og skifte en variabel fra en type til en anden. Funktionen memmove() er en af ​​funktionerne i C/C++.







Funktionen memmove() overfører 'num' bytes samtidigt fra indholdet af hukommelsesblokken, som er angivet af kilden, mod det sted, der er angivet af destinationen. Funktionen memmove() er kun fordelagtig, når kilde- og destinationsobjekterne overlapper hinanden og forhindrer den udefinerede adfærd i at forekomme. For at lære mere om memmove()-funktionen, lad os grave dybt og se, hvordan man implementerer syntaksen og eksemplerne i memmove()-funktionen.



Syntaks:

Her er den samme skrivestil og implementeringen af ​​memmove()-funktionen for både C- og C++-sprog. Først skriver vi nøgleordet 'void', hvilket betyder, at hvis funktionen ikke returnerer nogen værdi, skriver vi navnet på den funktion, som vi vil implementere, hvilket er memmove()-funktionen. I funktionsparenteserne skriver vi destinationen, så vi kan placere 'num' bytes med nøgleordet 'void'. Derefter skriver vi kildeplaceringen, hvorfra vi får 'num' bytes.







Parametre:

hånd: Adresse til det lagersted, hvor dataene er kopieret.

src: Adresse til det lagersted, hvorfra dataene kopieres.



tælle: Mængde data, der skal kopieres fra kilde til destination.

Returneringsværdi:

Til gengæld får vi adressen til målhukommelsesområdet. Dest returneres af memmove()-funktionen.

Eksempel 1: Implementering af Memmove()-funktionen i C

Lad os begynde at implementere vores allerførste og enkle eksempel på C-sproget. For at begynde at skrive skal vi først have en C-compiler, så vi kan skrive og udføre programmet. For det skal du åbne C-kompileren og begynde at implementere programmet.

#include
#include

int main ( )
{
char ch1 [ ] = { 'L' , 'jeg' , 'n' , 'i' , 'x' } ;

int længde = størrelse af ( ch1 ) / størrelse på ( ch1 [ 0 ] ) ;

printf ( 'Før du anvender memmove()-funktionen: ' ) ;
til ( int jeg = 0 ; jeg < længde; i++ )
{
printf ( '%c' , ch1 [ jeg ] ) ;
}

char * ch2 = & ch1 [ to ] ;
memmove ( ch2, ch1, størrelse af ( char ) * to ) ;

printf ( ' \n \n Efter anvendelse af memmove() funktion: ' ) ;

til ( int jeg = 0 ; jeg < 5 ; i++ )
{
printf ( '%c' , ch1 [ jeg ] ) ;
}
Vend tilbage 0 ;

}


Vi starter altid med at inkorporere kerneprogrammodulerne efter opstart af compileren. Disse moduler er de medfølgende C-sprogmoduler. Vi skal simpelthen indtaste en kodelinje for at inkludere disse moduler i modsætning til snesevis af kodelinjer for at konstruere modulet. '#'-indikatoren informerer oversætteren om at indlæse modulet først, før du bruger nøgleordet 'inkluder' til at tilføje modulet til programmet. 'stdio.h'-modulet betyder, at compileren accepterer data fra brugeren og viser dem til brugeren. Det andet modul i programmet er '#include ', så vi kan bruge de strengrelaterede funktioner i det eksisterende program.

Derefter starter vi main()-funktionen, så vi kan skrive den faktiske kodelinje, som vi vil implementere i programmet. I linje 6 erklærer vi tegnarraynavnet 'ch1' af typen karakter. Derefter tildeler vi en karakterværdi til den. Derefter beregner vi længden af ​​'ch1' og udskriver input-arrayet 'ch1' ved hjælp af 'for loop'.

Derefter erklærer vi markøren til 'ch2'-arrayet af et typetegn og tildeler adressen på 'ch1'-arrayet til 'ch2'-arrayet. Derefter udskriver vi det ved hjælp af printf()-sætningen. Lad os se resultatet af den forrige illustration:

Eksempel 2: Implementering af Memmove() funktion i C++

Her er det grundlæggende eksempel, der viser, hvordan memmove()-funktionen fungerer i C++-sproget. For at begynde at skrive skal vi først have en C++ IDE, så vi kan skrive og udføre programmet. For det skal du åbne C++-kompileren og begynde at implementere programmet.

Efter åbning af compileren starter vi altid med at inkludere de header-filer, der er nødvendige for at programmeringssproget C++ kan køre programmerne. For at konstruere programmet og bruge memmove()-metoden inkluderer vi først de to grundlæggende header-filer - 'iostream' og 'cstring'. C++ giver flere måder at arbejde med arrays og strenge på. Disse funktioner er gjort tilgængelige til brug, når header-filen er inkluderet i et program med '#include  '-headerfilen, der bruges til at kopiere et bestemt antal bytes data fra kilden til destinationen. Header-filen '#include ' bruges til både input og output af data fra brugeren. Derefter bruger vi standard 'namespace std' i vores kode til at bruge standardsyntaksen for C++ programmeringssproget, så vi kan forhindre objekter, metoder og parametre i at referere til det samme omfang gennem hele programmet.

#include
#include
bruger navneområde std;

int main ( )
{
char src [ halvtreds ] = '1234567890' ;
char dest [ halvtreds ] = '0987654321' ;

cout << 'Før du ansøger memmove to destination: ' << Start << endl;
memmove ( dest, src, 6 ) ;
cout << 'Efter at have anført memmove til destination: ' << hænder

Vend tilbage 0 ;
}


Vi begynder at skrive funktionen main() for at starte udførelsen af ​​en faktisk kodelinje. I linje 7 er der en to-karakters type array af længde 50, som er erklæret som 'src[50]' og 'dest[50]'. Vi bruger 'cout'-erklæringen til at udskrive meddelelsen, 'Før du anvender memmove() til destination: '. Derefter sender vi 'dest'-parameteren for at udskrive værdien af ​​'dest'-arrayet. Derefter anvendes memmove()-funktionen på tegntypevariablen erklæret som 'src[50]' og 'dest[50]' for at overlappe det bestemte antal bytes fra oprindelsen(src) til målet(dest) med antal 'tæller'. Dette identificerer antallet af bytes, der kopieres fra 'src' til 'dest'. Som du kan se i den følgende illustration, erklærede vi '6' tællernummer.

Derefter bruger vi 'cout'-sætningen igen til at vise meddelelsen, 'Efter at have anvendt memmove() til Destination: ', og videregiver variablen 'dest'-array af typen 'character'. For at stoppe programmet i at køre, skal vi bruge en returerklæring ved programmets afslutning. Vi returnerer derefter 0 til hovedfunktionen, hvilket indikerer, at programmet er udført med succes og opnået sit mål.

Du kan se i det følgende output af memmove()-metoden, at hvis der er overlapning, for eksempel når den indledende markør flytter til bogstavet 6, bliver markøren ved med at udskrive, og de følgende tegn vil overlappe. Dette C++-kodestykke blev kørt, og resultaterne vises i følgende billede:

Konklusion

I denne artikel lærte vi om memmove()-funktionen i programmeringssprogene C og C++. Vi talte om, hvordan memmove()-funktionen fungerer gennem eksemplet med C og C++ med en detaljeret forklaring af hver linje kode. Vi håber, at du finder denne artikel nyttig til at udvikle din viden om memmove()-funktionen i C og C++.