Memmove() в C и C++

Memmove V C I C



Сегодня мы собираемся изучить одну из важных функций языка C и C++ — функцию memmove(). Но перед этим давайте кратко рассмотрим основы языков C и C++. Мы также обсудим, какие функции есть в обоих языках C/C++.

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







Функция memmove() одновременно передает «количество» байтов из содержимого блока памяти, указанного источником, в место, указанное получателем. Функция memmove() полезна только тогда, когда исходный и конечный объекты перекрываются, и предотвращает возникновение неопределенного поведения. Чтобы узнать больше о функции memmove(), давайте углубимся и посмотрим, как реализовать синтаксис и примеры в функции memmove().



Синтаксис:

Вот тот же стиль написания и реализация функции memmove() для языков C и C++. Во-первых, мы пишем ключевое слово «void», что означает, что если функция не возвращает никакого значения, мы пишем имя функции, которую мы хотим реализовать, которая является функцией memmove(). В функциональных скобках мы пишем назначение, чтобы мы могли поместить байты «num» с ключевым словом «void». Затем мы записываем исходное местоположение, откуда мы получаем «количество» байтов.







Параметры:

рука: Адрес места хранения, в которое копируются данные.

источник: Адрес места хранения, из которого копируются данные.



считать: Объем данных для копирования из источника в место назначения.

Возвращаемое значение:

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

Пример 1. Реализация функции Memmove() на C

Давайте приступим к реализации нашего самого первого и простого примера языка Си. Чтобы начать писать, нам сначала нужен компилятор C, чтобы мы могли написать и выполнить программу. Для этого откройте компилятор C и начните реализацию программы.

#include
#include

внутренний основной ( )
{
символ ч1 [ ] знак равно { 'Л' , 'я' , 'н' , 'в' , 'Икс' } ;

целая длина = размер ( ч1 ) / размер ( ч1 [ 0 ] ) ;

printf ( 'Перед применением функции memmove(): ' ) ;
за ( инт я знак равно 0 ; я < длина; я++ )
{
printf ( '%с' , ч1 [ я ] ) ;
}

уголь * ч2 = & ч1 [ два ] ;
запомнить ( ч2, ч1, размер ( уголь ) * два ) ;

printf ( ' \n \n После применения функции memmove(): ' ) ;

за ( инт я знак равно 0 ; я < 5 ; я++ )
{
printf ( '%с' , ч1 [ я ] ) ;
}
возвращаться 0 ;

}


Мы всегда начинаем с включения основных программных модулей после запуска компилятора. Эти модули являются встроенными модулями языка C. Нам просто нужно ввести одну строку кода, чтобы включить эти модули, в отличие от десятков строк кода для создания модуля. Индикатор «#» информирует переводчика о необходимости сначала загрузить модуль, прежде чем использовать ключевое слово «include» для добавления модуля в программу. Модуль «stdio.h» означает, что компилятор принимает данные от пользователя и показывает их пользователю. Второй модуль программы — «#include », чтобы мы могли использовать функции, связанные со строками, в существующей программе.

Затем мы запускаем функцию main(), чтобы мы могли написать фактическую строку кода, которую мы хотим реализовать в программе. В строке 6 мы объявляем имя массива символов «ch1» типа character. Затем мы присваиваем ему значение символа. После этого мы вычисляем длину «ch1» и печатаем входной массив «ch1», используя «цикл for».

После этого объявляем указатель на массив «ch2» типа character и присваиваем адрес массива «ch1» массиву «ch2». Затем мы печатаем его с помощью оператора printf(). Давайте посмотрим на вывод предыдущей иллюстрации:

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

Вот базовый пример, показывающий, как работает функция memmove() в языке C++. Чтобы начать писать, нам сначала понадобится C++ IDE, чтобы мы могли написать и выполнить программу. Для этого откройте компилятор C++ и приступайте к реализации программы.

После открытия компилятора мы всегда начинаем с включения файлов заголовков, которые необходимы языку программирования C++ для запуска программ. Чтобы построить программу и использовать метод memmove(), мы сначала включаем два основных заголовочных файла — «iostream» и «cstring». C++ предоставляет несколько способов работы с массивами и строками. Эти функции становятся доступными для использования, когда файл заголовка включен в программу с файлом заголовка «#include  », используемым для копирования определенного количества байтов данных из источника в место назначения. Файл заголовка «#include » используется как для ввода, так и для вывода данных от пользователя. Затем мы используем стандартное «пространство имен std» в нашем коде, чтобы использовать стандартный синтаксис языка программирования C++, чтобы мы могли предотвратить ссылки объектов, методов и параметров на одну и ту же область действия во всей программе.

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

внутренний основной ( )
{
char источник [ 50 ] знак равно '1234567890' ;
чар дест [ 50 ] знак равно '0987654321' ;

cout << «Перед применением memmove к месту назначения:» << Начало << конец;
запомнить ( пункт назначения, 6 ) ;
cout << 'После применения memmove к месту назначения: ' << Руки

возвращаться 0 ;
}


Мы начинаем писать функцию main(), чтобы начать выполнение фактической строки кода. В строке 7 находится массив двухсимвольного типа длиной 50, объявленный как «src[50]» и «dest[50]». Мы используем оператор «cout» для вывода сообщения «Перед применением memmove() к месту назначения: ». Затем мы передаем параметр «dest», чтобы напечатать значение массива «dest». Затем функция memmove() применяется к переменной символьного типа, объявленной как «src[50]» и «dest[50]», чтобы перекрыть определенное количество байтов от источника (src) до цели (dest) с количество «счет». Это определяет количество байтов, которые копируются из «src» в «dest». Как вы можете видеть на следующем рисунке, мы объявили счетное число «6».

После этого мы снова используем оператор «cout», чтобы отобразить сообщение «После применения memmove() к месту назначения:» и передать массив переменных «dest» типа «character». Чтобы остановить выполнение программы, мы должны использовать оператор return в конце программы. Затем мы возвращаем 0 в основную функцию, указывая на то, что программа выполнена успешно и достигла своей цели.

Вы можете видеть в следующем выводе метода memmove(), что если есть перекрытие, например, когда начальный указатель перемещается на букву 6, указатель продолжает печатать, и следующие символы будут перекрываться. Этот фрагмент кода C++ был запущен, и результаты показаны на следующем изображении:

Вывод

В этой статье мы узнали о функции memmove() в языках программирования C и C++. Мы говорили о том, как работает функция memmove() на примере C и C++ с подробным объяснением каждой строки кода. Мы надеемся, что эта статья поможет вам расширить свои знания о функции memmove() в C и C++.