Memmove() в C и C++

Memmove V C I C



Днес ще научим една от важните функции на езика C и C++, която е функцията memmove(). Но преди това, нека да разгледаме набързо основите на езиците C и C++. Ще обсъдим също какви функции има в двата езика C/C++.

Езикът за програмиране C е лесен и доста ефективен за всякакви цели. С него е възможно внедряването на софтуер като Windows OS, бази данни, интерпретатори и други инструменти. C е чудесен език за начинаещи, за да научат кодирането. Ето защо програмирането на C е известно като майчиния език, тъй като служи като основа за всички останали компютърни езици. Основата на езика за програмиране C++ се основава на идеите на обектно-ориентираното програмиране (ООП). Потребителят може лесно да развие и разбере принципите на програмата, тъй като C++ има ясна структура. Езикът за програмиране C\C++ е изключително гъвкав при изпълнение на множество функции и превключване на променлива от един тип към друг. Функцията memmove() е една от функциите на C/C++.







Функцията memmove() прехвърля „num“ байтове едновременно от съдържанието на блока памет, който е посочен от източника, към местоположението, посочено от дестинацията. Функцията memmove() е от полза само когато обектите източник и дестинация се припокриват и спира възникването на недефинирано поведение. За да научите повече за функцията memmove(), нека се задълбочим и да видим как да приложим синтаксиса и примерите във функцията memmove().



Синтаксис:

Тук е същият стил на писане и изпълнението на функцията memmove() за езиците C и C++. Първо, пишем ключовата дума „void“, което означава, че ако функцията не върне никаква стойност, ние записваме името на функцията, която искаме да приложим, която е функцията memmove(). Във функционалните скоби записваме дестинацията, за да можем да поставим „num“ байтовете с ключовата дума „void“. След това записваме местоположението на източника, откъдето получаваме „num“ байтовете.







Параметри:

ръка: Адрес на мястото за съхранение, в което се копират данните.

src: Адрес на мястото за съхранение, от което се копират данните.



броя: Количеството данни за копиране от източника до местоназначението.

Върната стойност:

В замяна получаваме адреса на целевата област на паметта. Dest се връща от функцията memmove().

Пример 1: Внедряване на функцията Memmove() в C

Нека започнем да прилагаме нашия първи и прост пример за езика C. За да започнем да пишем, първо се нуждаем от C компилатор, за да можем да напишем и изпълним програмата. За целта отворете C компилатора и започнете да изпълнявате програмата.

#include
#include

int main ( )
{
char ch1 [ ] = { 'л' , 'аз' , 'н' , 'вътре' , 'х' } ;

int дължина = sizeof ( гл.1 ) / размер на ( гл.1 [ 0 ] ) ;

printf ( 'Преди да приложите функцията memmove(): ' ) ;
за ( вътр аз = 0 ; аз < дължина; i++ )
{
printf ( '%° С' , гл.1 [ аз ] ) ;
}

въглен * ch2 = и гл.1 [ две ] ;
memmove ( ch2, ch1, sizeof ( въглен ) * две ) ;

printf ( ' След прилагане на функцията memmove(): ' ) ;

за ( вътр аз = 0 ; аз < 5 ; i++ )
{
printf ( '%° С ' , гл.1 [ аз ] ) ;
}
връщане 0 ;

}


Винаги започваме с включването на основните програмни модули след стартиране на компилатора. Тези модули са пакетните модули на езика C. Просто трябва да напишем един ред код, за да включим тези модули, за разлика от десетки редове код, за да конструираме модула. Индикаторът „#“ информира преводача първо да зареди модула, преди да използва ключовата дума „включи“, за да добави модула към програмата. Модулът “stdio.h” означава, че компилаторът приема данните от потребителя и ги показва на потребителя. Вторият модул на програмата е “#include ”, така че да можем да използваме свързаните с низове функции в съществуващата програма.

След това стартираме функцията main(), за да можем да напишем действителния ред код, който искаме да внедрим в програмата. В ред 6 декларираме името на масива от символи „ch1“ от тип character. След това му присвояваме символна стойност. След това изчисляваме дължината на „ch1“ и отпечатваме входния масив „ch1“, използвайки „for цикъла“.

След това декларираме указателя към масива „ch2“ на символ тип и присвояваме адреса на масива „ch1“ към масива „ch2“. След това го отпечатваме с помощта на оператора printf(). Нека да видим резултата от предишната илюстрация:

Пример 2: Реализация на функцията Memmove() в C++

Ето основния пример, който показва как функционира функцията memmove() на езика C++. За да започнем да пишем, първо се нуждаем от C++ IDE, за да можем да напишем и изпълним програмата. За целта отворете C++ компилатора и започнете да изпълнявате програмата.

След като отворим компилатора, ние винаги започваме с включването на заглавните файлове, които са необходими на езика за програмиране C++ за изпълнение на програмите. За да конструираме програмата и да използваме метода memmove(), първо включваме двата фундаментални заглавни файла – „iostream“ и „cstring“. C++ предоставя няколко начина за работа с масиви и низове. Тези функции са достъпни за използване, когато заглавният файл е включен в програма със заглавния файл „#include  “, използван за копиране на определен брой байтове данни от източника към дестинацията. Заглавният файл „#include “ се използва както за въвеждане, така и за изход на данните от потребителя. След това използваме стандартното „именно пространство std“ в нашия код, за да използваме стандартния синтаксис на езика за програмиране C++, за да можем да предотвратим препращането на обектите, методите и параметрите към един и същи обхват в цялата програма.

#include
#include
използване на пространство от имена std;

int main ( )
{
char src [ петдесет ] = '1234567890' ;
char дест [ петдесет ] = '0987654321' ;

cout << „Преди да приложите memmove до дестинация:“ << започнете << endl;
memmove ( dest, src, 6 ) ;
cout << 'След прилагане на memmmove до дестинация: ' << ръце

връщане 0 ;
}


Започваме да пишем функцията main(), за да започнем изпълнението на действителен ред код. В ред 7 има двусимволен тип масив с дължина 50, който е деклариран като „src[50]” и „dest[50]”. Използваме оператора „cout“, за да отпечатаме съобщението „Преди да приложим memmove() към дестинация:“. След това предаваме параметъра „dest“, за да отпечатаме стойността на масива „dest“. След това функцията memmove() се прилага към променливата за символен тип, декларирана като „src[50]“ и „dest[50]“, за да припокрие определен брой байтове от origin(src) до target(dest) с брой „броене“. Това идентифицира броя байтове, които се копират от „src“ в „dest“. Както можете да видите на следващата илюстрация, ние декларирахме „6“ брой.

След това използваме оператора „cout“ отново, за да изведем съобщението „След прилагане на memmove() към Destination:“, и предаваме променливия масив „dest“ от тип „знак“. За да спрем изпълнението на програмата, трябва да използваме израз за връщане при завършване на програмата. След това връщаме 0 на основната функция, което показва, че програмата е изпълнена успешно и е постигнала целта си.

Можете да видите в следния изход на метода memmove(), че ако има припокриване, например, когато началният показалец се премести към буквата 6, показалецът продължава да се отпечатва и следващите знаци ще се припокриват. Този C++ кодов фрагмент е изпълнен и резултатите са показани на следното изображение:

Заключение

В тази статия научихме за функцията memmove() в езиците за програмиране C и C++. Говорихме за това как работи функцията memmove() чрез примера на C и C++ с подробно обяснение на всеки ред код. Надяваме се, че ще намерите тази статия за полезна за развиване на знанията ви относно функцията memmove() в C и C++.