Memmove() în C și C++

Memmove In C Si C



Astăzi, vom învăța una dintre funcțiile importante ale limbajului C și C++, care este funcția memmove(). Dar înainte de asta, să aruncăm o privire rapidă la elementele de bază ale limbajelor C și C++. Vom discuta, de asemenea, ce funcții sunt în ambele limbaje C/C++.

Limbajul de programare C este ușor și destul de eficient pentru toate scopurile. Implementarea de software cum ar fi sistemul de operare Windows, baze de date, interpreți și alte instrumente este posibilă cu acesta. C este o limbă grozavă pentru începători cu care să învețe codificarea. De aceea, programarea C este cunoscută ca limba maternă, deoarece servește drept bază pentru toate celelalte limbaje de calculator. Fundamentul limbajului de programare C++ se bazează pe ideile de programare orientată pe obiecte (OOP). Utilizatorul poate dezvolta și înțelege cu ușurință principiile programului, deoarece C++ are o structură clară. Limbajul de programare C\C++ este excepțional de versatil în realizarea mai multor funcții și comutarea unei variabile de la un tip la altul. Funcția memmove() este una dintre funcțiile C/C++.







Funcția memmove() transferă „num” octeți simultan din conținutul blocului de memorie care este indicat de sursă către locația indicată de destinație. Funcția memmove() este benefică numai atunci când obiectele sursă și destinație se suprapun și împiedică apariția comportamentului nedefinit. Pentru a afla mai multe despre funcția memmove(), haideți să cercetăm în profunzime și să vedem cum să implementăm sintaxa și exemplele în funcția memmove().



Sintaxă:

Iată același stil de scriere și implementarea funcției memmove() atât pentru limbajele C, cât și pentru C++. În primul rând, scriem cuvântul cheie „void”, ceea ce înseamnă că dacă funcția nu returnează nicio valoare, scriem numele funcției pe care dorim să o implementăm, care este funcția memmove(). În parantezele funcției, scriem destinația astfel încât să putem plasa „num” octeți cu cuvântul cheie „void”. Apoi, scriem locația sursei de unde obținem „num” octeți.







Parametri:

mână: Adresa locației de stocare în care sunt copiate datele.

src: Adresa locației de stocare din care sunt copiate datele.



numara: Cantitatea de date de copiat de la sursă la destinație.

Valoare returnată:

În schimb, primim adresa în zona de memorie țintă. Dest este returnat de funcția memmove().

Exemplul 1: Implementarea funcției Memmove() în C

Să începem să implementăm primul și simplu exemplu al limbajului C. Pentru a începe să scriem, avem nevoie mai întâi de un compilator C, astfel încât să putem scrie și executa programul. Pentru asta, deschideți compilatorul C și începeți să implementați programul.

#include
#include <șir.h>

int principal ( )
{
char ch1 [ ] = { „L” , 'eu' , 'n' , 'în' , 'X' } ;

int lungime = sizeof ( ch1 ) / dimensiunea ( ch1 [ 0 ] ) ;

printf ( 'Înainte de a aplica funcția memmove(): ' ) ;
pentru ( int i = 0 ; i < lungime; i++ )
{
printf ( „%c” , cap 1 [ i ] ) ;
}

char * ch2 = & ch1 [ Două ] ;
memmove ( ch2, ch1, dimensiunea ( char ) * Două ) ;

printf ( ' \n \n După aplicarea funcției memmove(): ' ) ;

pentru ( int i = 0 ; i < 5 ; i++ )
{
printf ( '%c' , cap 1 [ i ] ) ;
}
întoarcere 0 ;

}


Întotdeauna începem prin a încorpora modulele de bază ale programului după pornirea compilatorului. Aceste module sunt modulele incluse în limbaj C. Trebuie doar să introducem o linie de cod pentru a include aceste module, spre deosebire de zeci de linii de cod pentru a construi modulul. Indicatorul „#” informează traducătorul să încarce modulul înainte de a utiliza cuvântul cheie „include” pentru a adăuga modulul în program. Modulul „stdio.h” înseamnă că compilatorul acceptă datele de la utilizator și le arată utilizatorului. Al doilea modul al programului este „#include ”, astfel încât să putem folosi funcțiile legate de șiruri din programul existent.

Apoi, pornim funcția main() astfel încât să putem scrie linia reală de cod pe care dorim să o implementăm în program. În rândul 6, declarăm numele matricei de caractere „ch1” de tipul caracter. Apoi, îi atribuim o valoare de caracter. După aceea, calculăm lungimea „ch1” și tipărim matricea de intrare „ch1” folosind „bucla for”.

După aceea, declarăm indicatorul către matricea „ch2” a unui caracter de tip și atribuim adresa matricei „ch1” matricei „ch2”. Apoi, îl imprimăm folosind instrucțiunea printf(). Să vedem rezultatul ilustrației anterioare:

Exemplul 2: Implementarea funcției Memmove() în C++

Iată exemplul de bază care arată cum funcționează funcția memmove() în limbajul C++. Pentru a începe să scriem, avem nevoie mai întâi de un IDE C++, astfel încât să putem scrie și executa programul. Pentru asta, deschideți compilatorul C++ și începeți să implementați programul.

După deschiderea compilatorului, începem întotdeauna prin a include fișierele de antet care sunt necesare pentru limbajul de programare C++ pentru ca programele să ruleze. Pentru a construi programul și a folosi metoda memmove(), includem mai întâi cele două fișiere de antet fundamentale – „iostream” și „cstring”. C++ oferă mai multe moduri de lucru cu matrice și șiruri de caractere. Aceste funcții sunt disponibile pentru utilizare atunci când fișierul antet este inclus într-un program cu fișierul antet „#include  ” utilizat pentru copierea unui anumit număr de octeți de date de la sursă la destinație. Fișierul antet „#include ”  este folosit atât pentru intrarea, cât și pentru ieșirea datelor de la utilizator. Apoi, folosim standardul „namespace std” în codul nostru pentru a folosi sintaxa standard a limbajului de programare C++, astfel încât să putem preveni ca obiectele, metodele și parametrii să facă referire la același domeniu în întregul program.

#include
#include
folosind namespace std;

int principal ( )
{
char src [ cincizeci ] = „1234567890” ;
char dest [ cincizeci ] = „0987654321” ;

cout << „Înainte de a aplica memmove la destinație: ” << start << endl;
memmove ( dest, src, 6 ) ;
cout << „După aplicarea memmove la destinație: „ << mâinile

întoarcere 0 ;
}


Începem să scriem funcția main() pentru a începe execuția unei linii reale de cod. În linia 7, există o matrice de tip două caractere cu lungimea 50 care este declarată ca „src[50]” și „dest[50]”. Folosim declarația „cout” pentru a tipări mesajul „Înainte de a aplica memmove() la destinație:”. Apoi, trecem parametrul „dest” pentru a tipări valoarea matricei „dest”. Apoi, funcția memmove() este aplicată variabilei tip caracter declarată ca „src[50]” și „dest[50]” pentru a suprapune un anumit număr de octeți de la origine (src) la țintă (dest) cu număr de „număr”. Acesta identifică numărul de octeți care sunt copiați de la „src” la „dest”. După cum puteți vedea în ilustrația următoare, am declarat numărul de numărare „6”.

După aceea, folosim din nou declarația „cout” pentru a afișa mesajul „După aplicarea memmove() la Destinație:”, și trecem matricea variabilă „dest” de tip „caracter”. Pentru a opri rularea programului, trebuie să folosim o declarație return la încheierea programului. Revenim apoi 0 la funcția principală, indicând că programul este executat cu succes și și-a atins obiectivul.

Puteți vedea în următoarea ieșire a metodei memmove() că, dacă există o suprapunere, de exemplu, când indicatorul inițial se mută la litera 6, indicatorul continuă să se imprime și următoarele caractere se vor suprapune. Acest fragment de cod C++ a fost rulat și rezultatele sunt afișate în următoarea imagine:

Concluzie

În acest articol, am aflat despre funcția memmove() în limbajele de programare C și C++. Am vorbit despre cum funcționează funcția memmove() prin exemplul C și C++ cu o explicație detaliată a fiecărei linii de cod. Sperăm că veți găsi acest articol util în dezvoltarea cunoștințelor despre funcția memmove() în C și C++.