Memmove() programmā C un C++

Memmove Programma C Un C



Šodien mēs apgūsim vienu no svarīgajām C un C++ valodas funkcijām, kas ir funkcija memmove (). Bet pirms tam īsi apskatīsim C un C++ valodu pamatus. Mēs arī apspriedīsim, kādas funkcijas ir abās C/C++ valodās.

C programmēšanas valoda ir vienkārša un diezgan efektīva visiem mērķiem. Ar to ir iespējama programmatūras, piemēram, Windows OS, datu bāzes, tulku un citu rīku ieviešana. C ir lieliska valoda iesācējiem, lai apgūtu kodēšanu. Tāpēc C programmēšana ir pazīstama kā mātes valoda, jo tā kalpo par pamatu visām pārējām datoru valodām. C++ programmēšanas valodas pamats ir balstīts uz objektorientētās programmēšanas (OOP) idejām. Lietotājs var viegli izstrādāt un saprast programmas principus, jo C++ ir skaidra struktūra. C\C++ programmēšanas valoda ir ārkārtīgi daudzpusīga, veicot vairākas funkcijas un pārslēdzot mainīgo no viena veida uz citu. Funkcija memmove() ir viena no C/C++ funkcijām.







Funkcija memmove () vienlaikus pārsūta “num” baitus no avota norādītā atmiņas bloka satura uz galamērķa norādīto vietu. Funkcija memmove() ir izdevīga tikai tad, ja avota un mērķa objekti pārklājas un aptur nenoteiktas darbības. Lai uzzinātu vairāk par funkciju memmove(), padziļināsimies un redzēsim, kā funkcijā memmove() ieviest sintaksi un piemērus.



Sintakse:

Šeit ir tas pats rakstīšanas stils un funkcijas memmove() ieviešana gan C, gan C++ valodām. Pirmkārt, mēs ierakstām atslēgvārdu “void”, kas nozīmē, ka, ja funkcija neatgriež nekādu vērtību, mēs ierakstām tās funkcijas nosaukumu, kuru vēlamies ieviest, kas ir funkcija memmove (). Funkciju iekavās mēs ierakstām galamērķi, lai mēs varētu ievietot 'num' baitus ar 'void' atslēgvārdu. Pēc tam mēs rakstām avota atrašanās vietu, no kuras mēs iegūstam “num” baitu.







Parametri:

roka: Adrese uzglabāšanas vietai, kurā dati tiek kopēti.

src: Adrese uzglabāšanas vietai, no kuras dati tiek kopēti.



skaits: Datu apjoms, ko kopēt no avota uz galamērķi.

Atgriešanas vērtība:

Apmaiņā mēs saņemam adresi mērķa atmiņas apgabalam. Galamērķi atgriež funkcija memmove().

1. piemērs. Funkcijas Memmove() ieviešana programmā C

Sāksim ieviest mūsu pašu pirmo un vienkāršo C valodas piemēru. Lai sāktu rakstīt, mums vispirms ir nepieciešams C kompilators, lai mēs varētu rakstīt un izpildīt programmu. Lai to izdarītu, atveriet C kompilatoru un sāciet programmas ieviešanu.

#include
#include

int galvenais ( )
{
char ch1 [ ] = { 'L' , 'es' , 'n' , 'iekšā' , 'x' } ;

int garums = izmērs ( ch1 ) / izmērs ( ch1 [ 0 ] ) ;

printf ( 'Pirms funkcijas memmove() lietošanas: ) ;
priekš ( starpt i = 0 ; i < garums; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}

char * ch2 = & ch1 [ divi ] ;
atcerieties ( ch2, ch1, sizeof ( char ) * divi ) ;

printf ( ' \n \n Pēc funkcijas memmove() lietošanas: ' ) ;

priekš ( starpt i = 0 ; i < 5 ; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}
atgriezties 0 ;

}


Mēs vienmēr sākam ar galveno programmu moduļu iekļaušanu pēc kompilatora palaišanas. Šie moduļi ir komplektētie C valodas moduļi. Mums vienkārši jāievada viena koda rindiņa, lai iekļautu šos moduļus, nevis desmitiem koda rindiņu, lai izveidotu moduli. Indikators “#” informē tulkotāju, ka vispirms ir jāielādē modulis, pirms tiek izmantots atslēgvārds “include”, lai moduli pievienotu programmai. Modulis “stdio.h” nozīmē, ka kompilators pieņem datus no lietotāja un parāda tos lietotājam. Otrais programmas modulis ir “#include ”, lai mēs varētu izmantot ar virkni saistītās funkcijas esošajā programmā.

Pēc tam mēs sākam galveno () funkciju, lai mēs varētu ierakstīt faktisko koda rindu, kuru mēs vēlamies ieviest programmā. 6. rindā mēs deklarējam rakstzīmju masīva nosaukumu “ch1” ar tipa rakstzīmi. Pēc tam mēs tam piešķiram rakstzīmes vērtību. Pēc tam mēs aprēķinām “ch1” garumu un izdrukājam ievades masīvu “ch1”, izmantojot “cilpu”.

Pēc tam mēs deklarējam rādītāju uz rakstzīmes “ch2” masīvu un piešķiram “ch1” masīva adresi “ch2” masīvam. Pēc tam mēs to izdrukājam, izmantojot priekšrakstu printf (). Apskatīsim iepriekšējās ilustrācijas rezultātu:

2. piemērs: Funkcijas Memmove() ieviešana programmā C++

Šeit ir pamata piemērs, kas parāda, kā funkcija memmove () darbojas C++ valodā. Lai sāktu rakstīt, mums vispirms ir nepieciešams C++ IDE, lai mēs varētu rakstīt un izpildīt programmu. Lai to izdarītu, atveriet C++ kompilatoru un sāciet programmas ieviešanu.

Pēc kompilatora atvēršanas mēs vienmēr sākam, iekļaujot galvenes failus, kas nepieciešami C++ programmēšanas valodai, lai programmas varētu darboties. Lai izveidotu programmu un izmantotu memmove() metodi, mēs vispirms iekļaujam divus galvenos galvenes failus - 'iostream' un 'cstring'. C++ nodrošina vairākus veidus, kā strādāt ar masīviem un virknēm. Šīs funkcijas ir pieejamas lietošanai, ja galvenes fails ir iekļauts programmā ar galvenes failu “#include  ”, ko izmanto, lai kopētu noteiktu datu baitu skaitu no avota uz galamērķi. Galvenes fails “#include ” tiek izmantots gan lietotāja datu ievadei, gan izvadīšanai. Pēc tam mēs savā kodā izmantojam standarta “namespace std”, lai izmantotu C++ programmēšanas valodas standarta sintaksi, lai mēs varētu novērst, ka objekti, metodes un parametri atsaucas uz vienu un to pašu tvērumu visā programmā.

#include
#include
izmantojot namespace std;

int galvenais ( )
{
char src [ piecdesmit ] = '1234567890' ;
char dest [ piecdesmit ] = '0987654321' ;

cout << 'Pirms memmove piemērošanas galamērķim:' << sākt << endl;
atcerieties ( galamērķis, src, 6 ) ;
cout << 'Pēc memmove uzlikšanas galamērķim:' << rokas

atgriezties 0 ;
}


Mēs sākam rakstīt galveno () funkciju, lai sāktu faktiskās koda rindas izpildi. 7. rindiņā ir divu rakstzīmju tipa masīvs, kura garums ir 50 un kas tiek deklarēts kā “src[50]” un “dest[50]”. Mēs izmantojam paziņojumu “cout”, lai izdrukātu ziņojumu “Pirms pieteikšanās memmove() galamērķim:”. Pēc tam mēs nododam parametru “dest”, lai izdrukātu “dest” masīva vērtību. Pēc tam funkcija memmove() tiek lietota rakstzīmju tipa mainīgajam, kas deklarēts kā “src[50]” un “dest[50]”, lai pārklātu noteiktu baitu skaitu no izcelsmes(src) līdz mērķim(dest) ar skaits 'skaits'. Tas identificē baitu skaitu, kas tiek kopēti no “src” uz “dest”. Kā redzat nākamajā ilustrācijā, mēs norādījām skaitli '6'.

Pēc tam mēs atkal izmantojam paziņojumu “cout”, lai parādītu ziņojumu “Pēc memmove() piemērošanas galamērķim:”, un nododam mainīgā “dest” masīvu “character” tipam. Lai apturētu programmas darbību, programmas noslēgumā ir jāizmanto atgriešanas paziņojums. Pēc tam mēs atgriežam 0 uz galveno funkciju, norādot, ka programma ir veiksmīgi izpildīta un ir sasniegusi savu mērķi.

Nākamajā metodes memmove() izvadē var redzēt, ka, ja notiek pārklāšanās, piemēram, sākotnējam rādītājam pārvietojoties uz burtu 6, rādītājs turpina drukāt un nākamās rakstzīmes pārklājas. Šis C++ koda fragments tika palaists, un rezultāti tiek parādīti šādā attēlā:

Secinājums

Šajā rakstā mēs uzzinājām par memmove() funkciju C un C++ programmēšanas valodās. Mēs runājām par to, kā funkcija memmove () darbojas, izmantojot C un C++ piemēru ar detalizētu katras koda rindiņas skaidrojumu. Mēs ceram, ka šis raksts jums noderēs, pilnveidojot zināšanas par memmove() funkciju C un C++.