Memmove() en C i C++

Memmove En C I C



Avui, aprendrem una de les funcions importants del llenguatge C i C++ que és la funció memmove(). Però abans d'això, fem una ullada ràpida als fonaments bàsics dels llenguatges C i C++. També parlarem de quines funcions hi ha en els dos llenguatges C/C++.

El llenguatge de programació C és fàcil i bastant eficaç per a tots els propòsits. La implementació de programari com ara el sistema operatiu Windows, bases de dades, intèrprets i altres eines és possible amb ell. C és un llenguatge fantàstic per a que els principiants aprenguin la codificació. És per això que la programació C es coneix com el llenguatge mare, ja que serveix com a base per a tots els altres llenguatges informàtics. La base del llenguatge de programació C++ es basa en les idees de programació orientada a objectes (OOP). L'usuari pot desenvolupar i comprendre els principis del programa fàcilment, ja que C++ té una estructura clara. El llenguatge de programació C\C++ és excepcionalment versàtil per realitzar múltiples funcions i canviar una variable d'un tipus a un altre. La funció memmove() és una de les funcions de C/C++.







La funció memmove() transfereix 'num' bytes simultàniament des del contingut del bloc de memòria indicat per la font cap a la ubicació indicada per la destinació. La funció memmove() només és beneficiosa quan els objectes d'origen i de destinació se superposen i impedeix que es produeixi el comportament no definit. Per obtenir més informació sobre la funció memmove(), anem a aprofundir i veure com implementar la sintaxi i els exemples a la funció memmove().



Sintaxi:

Aquí hi ha el mateix estil d'escriptura i la implementació de la funció memmove() per als llenguatges C i C++. Primer, escrivim la paraula clau 'void', que significa que si la funció no retorna cap valor, escrivim el nom de la funció que volem implementar que és la funció memmove(). Entre els parèntesis de la funció, escrivim la destinació perquè puguem col·locar els bytes 'num' amb la paraula clau 'void'. Aleshores, escrivim la ubicació d'origen d'on obtenim els 'num' bytes.







Paràmetres:

mà: Adreça a la ubicació d'emmagatzematge on es copien les dades.

src: Adreça a la ubicació d'emmagatzematge des d'on es copien les dades.



recompte: Quantitat de dades a copiar de la font a la destinació.

Valor de retorn:

A canvi, obtenim l'adreça a l'àrea de memòria objectiu. Dest és retornat per la funció memmove().

Exemple 1: Implementació de la funció Memmove() en C

Comencem a implementar el nostre primer i senzill exemple del llenguatge C. Per començar a escriure, primer necessitem un compilador C perquè puguem escriure i executar el programa. Per això, obriu el compilador C i comenceu a implementar el programa.

#inclou
#inclou

int principal ( )
{
char ch1 [ ] = { 'L' , 'jo' , 'n' , 'en' , 'x' } ;

int longitud = sizeof ( cap 1 ) / mida de ( cap 1 [ 0 ] ) ;

imprimirf ( 'Abans d'aplicar la funció memmove():' ) ;
per ( int i = 0 ; i < llargada; i++ )
{
imprimirf ( '%c' , cap 1 [ i ] ) ;
}

char * ch2 = & cap 1 [ 2 ] ;
memmove ( ch2, ch1, mida de ( char ) * 2 ) ;

imprimirf ( ' \n \n Després d'aplicar la funció memmove(): ' ) ;

per ( int i = 0 ; i < 5 ; i++ )
{
imprimirf ( '%c' , cap 1 [ i ] ) ;
}
tornar 0 ;

}


Sempre comencem incorporant els mòduls bàsics del programa després d'iniciar el compilador. Aquests mòduls són els mòduls de llenguatge C agrupats. Simplement hem d'escriure una línia de codi per incloure aquests mòduls, a diferència de desenes de línies de codi per construir el mòdul. L'indicador '#' informa al traductor que carregui primer el mòdul abans d'utilitzar la paraula clau 'inclou' per afegir el mòdul al programa. El mòdul “stdio.h” significa que el compilador accepta les dades de l'usuari i les mostra a l'usuari. El segon mòdul del programa és '#include ' perquè puguem utilitzar les funcions relacionades amb les cadenes del programa existent.

A continuació, iniciem la funció main() perquè puguem escriure la línia de codi real que volem implementar al programa. A la línia 6, declarem el nom de la matriu de caràcters 'ch1' del tipus caràcter. A continuació, li assignem un valor de caràcter. Després d'això, calculem la longitud del 'ch1' i imprimim la matriu d'entrada 'ch1' mitjançant el 'bucle for'.

Després d'això, declarem el punter a la matriu 'ch2' d'un caràcter de tipus i assignem l'adreça de la matriu 'ch1' a la matriu 'ch2'. Aleshores, l'imprimim utilitzant la instrucció printf(). Vegem la sortida de la il·lustració anterior:

Exemple 2: Implementació de la funció Memmove() en C++

Aquí teniu l'exemple bàsic que mostra com funciona la funció memmove() en el llenguatge C++. Per començar a escriure, primer necessitem un IDE C++ perquè puguem escriure i executar el programa. Per això, obriu el compilador C++ i comenceu a implementar el programa.

Després d'obrir el compilador, sempre comencem per incloure els fitxers de capçalera que són necessaris per al llenguatge de programació C++ perquè els programes s'executin. Per construir el programa i utilitzar el mètode memmove(), primer incloem els dos fitxers de capçalera fonamentals: 'iostream' i 'cstring'. C++ ofereix diverses maneres de treballar amb matrius i cadenes. Aquestes funcions estan disponibles per utilitzar-les quan el fitxer de capçalera s'inclou en un programa amb el fitxer de capçalera '#include  ' que s'utilitza per copiar un nombre determinat de bytes de dades de l'origen a la destinació. El fitxer de capçalera '#include ' s'utilitza tant per a l'entrada com per a la sortida de les dades de l'usuari. A continuació, utilitzem l'estàndard 'namespace std' al nostre codi per utilitzar la sintaxi estàndard del llenguatge de programació C++ per evitar que els objectes, mètodes i paràmetres facin referència al mateix abast a tot el programa.

#inclou
#inclou
utilitzant namespace std;

int principal ( )
{
char src [ 50 ] = '1234567890' ;
char dest [ 50 ] = '0987654321' ;

cout << 'Abans d'aplicar memmove a la destinació: ' << començar << endl;
memmove ( dest, src, 6 ) ;
cout << 'Després d'aplicar memmove a Destination:' << mans

tornar 0 ;
}


Comencem a escriure la funció main() per iniciar l'execució d'una línia de codi real. A la línia 7, hi ha una matriu de tipus de dos caràcters de longitud 50 que es declara com a 'src[50]' i 'dest[50]'. Utilitzem la instrucció 'cout' per imprimir el missatge, 'Abans d'aplicar memmove() a la destinació:'. A continuació, passem el paràmetre 'dest' per imprimir el valor de la matriu 'dest'. Aleshores, la funció memmove() s'aplica a la variable de tipus de caràcter declarada com a 'src[50]' i 'dest[50]' per solapar el nombre determinat de bytes des de l'origen (src) fins a la destinació (dest) amb el nombre de 'compte'. Això identifica el nombre de bytes que es copien de 'src' a 'dest'. Com podeu veure a la il·lustració següent, hem declarat un nombre de recompte '6'.

Després d'això, tornem a utilitzar la instrucció 'cout' per mostrar el missatge 'Després d'aplicar memmove() a la destinació:', i passem la matriu variable 'dest' de tipus 'caràcter'. Per aturar l'execució del programa, hem d'utilitzar una declaració de retorn al final del programa. A continuació, tornem 0 a la funció principal, indicant que el programa s'ha executat correctament i ha aconseguit el seu objectiu.

Podeu veure a la següent sortida del mètode memmove() que si hi ha una superposició, per exemple, quan el punter inicial es mou a la lletra 6, el punter continua imprimint i els caràcters següents se superposaran. Aquest fragment de codi C++ es va executar i els resultats es mostren a la imatge següent:

Conclusió

En aquest article, vam conèixer la funció memmove() en llenguatges de programació C i C++. Hem parlat de com funciona la funció memmove() mitjançant l'exemple de C i C++ amb una explicació detallada de cada línia de codi. Esperem que aquest article us sigui útil per desenvolupar els vostres coneixements sobre la funció memmove() en C i C++.