Memmove() sa C at C++

Memmove Sa C At C



Ngayon, matututunan natin ang isa sa mga mahahalagang function ng C at C++ na wika na kung saan ay ang memmove() function. Ngunit bago iyon, tingnan natin ang mga pangunahing kaalaman sa mga wikang C at C++. Tatalakayin din natin kung anong mga function ang nasa parehong C/C++ na wika.

Ang C programming language ay madali at medyo epektibo para sa lahat ng layunin. Ang pagpapatupad ng software tulad ng Windows OS, Mga Database, Interpreter, at iba pang mga tool ay posible kasama nito. Ang C ay isang mahusay na wika para sa mga nagsisimula upang matutunan ang coding. Kaya naman ang C programming ay kilala bilang mother language dahil ito ang nagsisilbing pundasyon para sa lahat ng iba pang wika sa computer. Ang pundasyon ng C++ programming language ay batay sa mga ideya ng object-oriented programming (OOP). Madaling mabuo at mauunawaan ng user ang mga prinsipyo ng programa dahil may malinaw na istraktura ang C++. Ang C\C++ programming language ay pambihirang versatile sa pagsasagawa ng maraming function at paglipat ng variable mula sa isang uri patungo sa isa pa. Ang memmove() function ay isa sa mga function ng C/C++.







Ang memmove() function ay naglilipat ng 'num' bytes nang sabay-sabay mula sa mga nilalaman ng memory block na ipinahiwatig ng pinagmulan patungo sa lokasyong ipinahiwatig ng patutunguhan. Ang memmove() function ay kapaki-pakinabang lamang kapag ang pinagmulan at patutunguhan na mga bagay ay nag-overlap at pinipigilan ang hindi natukoy na gawi na mangyari. Upang matuto nang higit pa tungkol sa memmove() function, tingnan natin kung paano ipatupad ang syntax at mga halimbawa sa memmove() function.



Syntax:

Narito ang parehong istilo ng pagsulat at ang pagpapatupad ng memmove() function para sa parehong C at C++ na mga wika. Una, isinusulat namin ang 'void' na keyword na nangangahulugan na kung ang function ay hindi nagbabalik ng anumang halaga, isusulat namin ang pangalan ng function na gusto naming ipatupad na memmove() function. Sa mga function bracket, isinusulat namin ang patutunguhan upang mailagay namin ang 'num' bytes na may 'void' na keyword. Pagkatapos, isinusulat namin ang lokasyon ng pinagmulan kung saan namin nakukuha ang 'num' bytes.







Mga Parameter:

kamay: Address sa lokasyon ng imbakan kung saan kinopya ang data.

src: Address sa lokasyon ng imbakan kung saan kinopya ang data.



bilangin: Dami ng data na kokopyahin mula sa pinagmulan hanggang sa patutunguhan.

Halaga ng Pagbabalik:

Bilang kapalit, nakukuha namin ang address sa target na lugar ng memorya. Ang Dest ay ibinalik ng memmove() function.

Halimbawa 1: Pagpapatupad ng Memmove() Function sa C

Simulan nating ipatupad ang ating pinakauna at simpleng halimbawa ng wikang C. Upang magsimulang magsulat, kailangan muna namin ng isang C compiler upang maisulat at maisagawa namin ang programa. Para doon, buksan ang C compiler at simulan ang pagpapatupad ng programa.

#include
#include

int pangunahing ( )
{
char ch1 [ ] = { 'L' , 'ako' , 'n' , 'sa' , 'x' } ;

int haba = sizeof ( ch1 ) / sukat ng ( ch1 [ 0 ] ) ;

printf ( 'Bago ilapat ang memmove() function: ' ) ;
para sa ( int i = 0 ; i < haba; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}

char * ch2 = at ch1 [ dalawa ] ;
memmove ( ch2, ch1, laki ng ( char ) * dalawa ) ;

printf ( ' \n \n Pagkatapos ilapat ang memmove() function: ' ) ;

para sa ( int i = 0 ; i < 5 ; i++ )
{
printf ( '%c ' , ch1 [ i ] ) ;
}
bumalik 0 ;

}


Palagi kaming nagsisimula sa pamamagitan ng pagsasama ng mga pangunahing module ng programa pagkatapos simulan ang compiler. Ang mga module na ito ay ang mga naka-bundle na C language modules. Kailangan lang nating mag-type ng isang linya ng code para isama ang mga module na ito, kumpara sa dose-dosenang linya ng code para mabuo ang module. Ang “#” indicator ay nagpapaalam sa tagasalin na i-load muna ang module bago gamitin ang “include” na keyword upang idagdag ang module sa program. Ang 'stdio.h' module ay nangangahulugang tinatanggap ng compiler ang data mula sa user at ipinapakita ito sa user. Ang pangalawang module ng programa ay '#include ' para magamit natin ang mga function na nauugnay sa string sa kasalukuyang program.

Pagkatapos, sinisimulan namin ang main() function upang maisulat namin ang aktwal na linya ng code na gusto naming ipatupad sa programa. Sa linya 6, ipinapahayag namin ang pangalan ng array ng character na 'ch1' ng uri ng character. Pagkatapos, nagtatalaga kami ng halaga ng character dito. Pagkatapos nito, kinakalkula namin ang haba ng 'ch1' at i-print ang input array 'ch1' gamit ang 'para sa loop'.

Pagkatapos nito, ipinapahayag namin ang pointer sa array na 'ch2' ng isang uri ng character at itinalaga ang address ng array na 'ch1' sa array na 'ch2'. Pagkatapos, ipi-print namin ito gamit ang printf() na pahayag. Tingnan natin ang output ng nakaraang ilustrasyon:

Halimbawa 2: Pagpapatupad ng Memmove() Function sa C++

Narito ang pangunahing halimbawa na nagpapakita kung paano gumaganap ang memmove() function sa wikang C++. Upang magsimulang magsulat, kailangan muna natin ng C++ IDE upang maisulat at maisagawa natin ang programa. Para doon, buksan ang C++ compiler at simulan ang pagpapatupad ng programa.

Pagkatapos buksan ang compiler, palagi kaming magsisimula sa pamamagitan ng pagsasama ng mga file ng header na kinakailangan para sa C++ programming language para tumakbo ang mga program. Upang buuin ang programa at gamitin ang memmove() na pamamaraan, isinama muna namin ang dalawang pangunahing mga file ng header - 'iostream' at 'cstring'. Nagbibigay ang C++ ng ilang paraan para sa pagtatrabaho sa mga array at string. Ang mga function na ito ay ginawang magagamit para sa paggamit kapag ang header file ay kasama sa isang program na may '#include  ' header file na ginagamit para sa pagkopya ng isang tiyak na bilang ng mga byte ng data mula sa pinagmulan patungo sa destinasyon. Ang header file na “#include ”  ay ginagamit para sa parehong input at output ng data mula sa user. Pagkatapos, ginagamit namin ang karaniwang 'namespace std' sa aming code upang gamitin ang karaniwang syntax ng C++ programming language para maiwasan namin ang mga bagay, pamamaraan, at parameter na mag-refer sa parehong saklaw sa buong programa.

#include
#include
gamit ang namespace std;

int pangunahing ( )
{
char src [ limampu ] = '1234567890' ;
char dest [ limampu ] = '0987654321' ;

cout << 'Bago Mag-apply ng memmove sa Destination: ' << simulan << endl;
memmove ( dest, src, 6 ) ;
cout << 'Pagkatapos mag-apply ng memmove sa Destination: ' << mga kamay

bumalik 0 ;
}


Nagsisimula kaming isulat ang main() function upang simulan ang pagpapatupad ng isang aktwal na linya ng code. Sa linya 7, mayroong dalawang-character type array na may haba na 50 na idineklara bilang 'src[50]' at 'dest[50]'. Ginagamit namin ang 'cout' na pahayag upang i-print ang mensahe, 'Bago Ilapat ang memmove() sa Destination: '. Pagkatapos, ipinapasa namin ang parameter na 'dest' upang i-print ang halaga ng array na 'dest'. Pagkatapos, ang memmove() function ay inilapat sa uri ng character na variable na idineklara bilang 'src[50]' at 'dest[50]' upang i-overlap ang tiyak na bilang ng mga byte mula sa pinanggalingan(src) hanggang sa target(dest) gamit ang bilang ng 'bilang'. Tinutukoy nito ang bilang ng mga byte na kinopya mula sa 'src' hanggang sa 'dest'. Tulad ng makikita mo sa sumusunod na paglalarawan, idineklara namin ang '6' na bilang ng bilang.

Pagkatapos nito, muli naming ginagamit ang 'cout' na pahayag upang ipakita ang mensahe, 'Pagkatapos ng Paglalapat ng memmove() sa Destination: ', at ipasa ang variable na 'dest' array ng 'character' type. Upang ihinto ang programa mula sa pagtakbo, dapat naming gamitin ang isang return statement sa pagtatapos ng programa. Pagkatapos ay ibabalik namin ang 0 sa pangunahing function, na nagpapahiwatig na ang programa ay matagumpay na naisakatuparan at nakamit ang layunin nito.

Makikita mo sa sumusunod na output ng memmove() method na kung mayroong overlapping, halimbawa, kapag ang inisyal na pointer ay lumipat sa titik 6, ang pointer ay patuloy na nagpi-print at ang mga sumusunod na character ay magkakapatong. Ang C++ code snippet na ito ay pinatakbo at ang mga resulta ay ipinapakita sa sumusunod na larawan:

Konklusyon

Sa artikulong ito, natutunan namin ang tungkol sa memmove() function sa C at C++ programming language. Napag-usapan namin kung paano gumagana ang memmove() function sa pamamagitan ng halimbawa ng C at C++ na may detalyadong paliwanag ng bawat linya ng code. Umaasa kami na nakatulong sa iyo ang artikulong ito sa pagbuo ng iyong kaalaman tungkol sa memmove() function sa C at C++.