Memmove() w C i C++

Memmove W C I C



Dzisiaj nauczymy się jednej z ważnych funkcji języka C i C++, jaką jest funkcja memmove(). Ale zanim to nastąpi, rzućmy okiem na podstawy języków C i C++. Omówimy również, jakie funkcje występują w obu językach C/C++.

Język programowania C jest łatwy i dość skuteczny do wszystkich celów. Dzięki niemu możliwa jest implementacja oprogramowania, takiego jak system operacyjny Windows, bazy danych, interpretery i inne narzędzia. C to świetny język dla początkujących do nauki kodowania. Dlatego programowanie w C jest znane jako język ojczysty, ponieważ służy jako podstawa dla wszystkich innych języków komputerowych. Podstawą języka programowania C++ są idee programowania obiektowego (OOP). Użytkownik może łatwo opracować i zrozumieć zasady programu, ponieważ C++ ma przejrzystą strukturę. Język programowania C\C++ jest wyjątkowo wszechstronny w wykonywaniu wielu funkcji i przełączaniu zmiennych z jednego typu na inny. Funkcja memmove() jest jedną z funkcji języka C/C++.







Funkcja memmove() przesyła jednocześnie „num” bajtów z zawartości bloku pamięci wskazanego przez źródło do lokalizacji wskazanej przez miejsce docelowe. Funkcja memmove() jest korzystna tylko wtedy, gdy obiekty źródłowe i docelowe nakładają się na siebie i zapobiega występowaniu niezdefiniowanego zachowania. Aby dowiedzieć się więcej o funkcji memmove(), przyjrzyjmy się bliżej i zobaczmy, jak zaimplementować składnię i przykłady w funkcji memmove().



Składnia:

Oto ten sam styl pisania i implementacja funkcji memmove() dla języków C i C++. Najpierw piszemy słowo kluczowe „void”, co oznacza, że ​​jeśli funkcja nie zwraca żadnej wartości, wpisujemy nazwę funkcji, którą chcemy zaimplementować, czyli funkcji memmove(). W nawiasach funkcyjnych zapisujemy miejsce docelowe, abyśmy mogli umieścić „num” bajtów ze słowem kluczowym „void”. Następnie zapisujemy lokalizację źródłową, z której otrzymujemy „num” bajtów.







Parametry:

ręka: Adres do miejsca przechowywania, do którego kopiowane są dane.

źródło: Adres do miejsca przechowywania, z którego kopiowane są dane.



liczyć: Ilość danych do skopiowania ze źródła do miejsca docelowego.

Wartość zwracana:

W zamian otrzymujemy adres do docelowego obszaru pamięci. Dest jest zwracany przez funkcję memmove().

Przykład 1: Implementacja funkcji Memmove() w C

Zacznijmy wdrażać nasz pierwszy i prosty przykład języka C. Aby zacząć pisać, potrzebujemy najpierw kompilatora C, abyśmy mogli napisać i wykonać program. W tym celu otwórz kompilator C i zacznij wdrażać program.

#include
#include <łańcuch.h>

int główny ( )
{
znak ch1 [ ] = { „L” , 'i' , 'n' , 'w' , 'x' } ;

int długość = rozmiar ( kanał 1 ) / rozmiar ( kanał 1 [ 0 ] ) ;

drukujf ( „Przed zastosowaniem funkcji memmove():” ) ;
dla ( int i = 0 ; i < długość; i++ )
{
drukujf ( '%c' , rozdział 1 [ i ] ) ;
}

zwęglać * oł2 = & kanał 1 [ dwa ] ;
pamiętnik ( oł2, oł1, rozmiar ( zwęglać ) * dwa ) ;

drukujf ( ' \n \n Po zastosowaniu funkcji memmove(): „ ) ;

dla ( int i = 0 ; i < 5 ; i++ )
{
drukujf ( '%c ' , rozdział 1 [ i ] ) ;
}
zwrócić 0 ;

}


Zawsze zaczynamy od włączenia podstawowych modułów programu po uruchomieniu kompilatora. Te moduły to dołączone moduły języka C. Wystarczy wpisać jeden wiersz kodu, aby uwzględnić te moduły, w przeciwieństwie do dziesiątek wierszy kodu, aby skonstruować moduł. Wskaźnik „#” informuje tłumacza, aby najpierw załadował moduł przed użyciem słowa kluczowego „include” w celu dodania modułu do programu. Moduł „stdio.h” oznacza, że ​​kompilator przyjmuje dane od użytkownika i pokazuje je użytkownikowi. Drugim modułem programu jest „#include ”, dzięki czemu możemy korzystać z funkcji związanych z ciągami znaków w istniejącym programie.

Następnie uruchamiamy funkcję main(), abyśmy mogli napisać właściwą linię kodu, którą chcemy zaimplementować w programie. W linii 6 deklarujemy nazwę tablicy znaków „ch1” typu znak. Następnie przypisujemy mu wartość znaku. Następnie obliczamy długość „ch1” i drukujemy tablicę wejściową „ch1” za pomocą „pętli for”.

Następnie deklarujemy wskaźnik do tablicy „ch2” znaku typu i przypisujemy adres tablicy „ch1” do tablicy „ch2”. Następnie drukujemy go za pomocą instrukcji printf(). Zobaczmy wynik poprzedniej ilustracji:

Przykład 2: Implementacja funkcji Memmove() w C++

Oto podstawowy przykład pokazujący działanie funkcji memmove() w języku C++. Aby zacząć pisać, potrzebujemy najpierw środowiska IDE C++, abyśmy mogli napisać i wykonać program. W tym celu otwórz kompilator C++ i zacznij wdrażać program.

Po uruchomieniu kompilatora zawsze zaczynamy od dołączenia plików nagłówkowych, które są niezbędne do działania programów w języku programowania C++. Aby skonstruować program i użyć metody memmove(), najpierw dołączamy dwa podstawowe pliki nagłówkowe – „iostream” i „cstring”. C++ udostępnia kilka sposobów pracy z tablicami i łańcuchami. Funkcje te są udostępniane do użytku, gdy plik nagłówkowy jest zawarty w programie z plikiem nagłówkowym „#include ” używanym do kopiowania określonej liczby bajtów danych ze źródła do miejsca docelowego. Plik nagłówkowy „#include ” jest używany zarówno do wprowadzania, jak i wyprowadzania danych od użytkownika. Następnie używamy w naszym kodzie standardowej „przestrzeni nazw std”, aby użyć standardowej składni języka programowania C++, dzięki czemu możemy zapobiec odwoływaniu się obiektów, metod i parametrów do tego samego zakresu w całym programie.

#include
#include
używając przestrzeni nazw std;

int główny ( )
{
źródło char [ pięćdziesiąt ] = „1234567890” ;
znak cel [ pięćdziesiąt ] = '0987654321' ;

cout << „Przed zastosowaniem memmove do miejsca docelowego:” << początek << koniec;
pamiętnik ( cel, src, 6 ) ;
cout << „Po zastosowaniu memmove do miejsca docelowego:” << ręce

zwrócić 0 ;
}


Zaczynamy pisać funkcję main(), aby rozpocząć wykonywanie rzeczywistej linii kodu. W linii 7 znajduje się dwuznakowa tablica o długości 50, która jest zadeklarowana jako „src[50]” i „dest[50]”. Używamy instrukcji „cout”, aby wyświetlić komunikat „Before Apply memmove() to Destination: ”. Następnie przekazujemy parametr „dest”, aby wydrukować wartość tablicy „dest”. Następnie funkcja memmove() jest stosowana do zmiennej typu znakowego zadeklarowanej jako „src[50]” i „dest[50]”, aby nałożyć pewną liczbę bajtów od pochodzenia (źródła) do celu (celu) z liczba „liczeń”. Określa liczbę bajtów, które są kopiowane z „src” do „dest”. Jak widać na poniższej ilustracji, zadeklarowaliśmy liczbę „6”.

Następnie ponownie używamy instrukcji „cout”, aby wyświetlić komunikat „Po zastosowaniu memmove() do miejsca docelowego: ” i przekazujemy tablicę zmiennych „dest” typu „character”. Aby zatrzymać działanie programu, musimy użyć instrukcji return na zakończenie programu. Następnie zwracamy 0 do funkcji main, co wskazuje, że program został pomyślnie wykonany i osiągnął swój cel.

Na poniższym wyjściu metody memmove() można zobaczyć, że w przypadku nakładania się, na przykład, gdy początkowy wskaźnik przesuwa się do litery 6, wskaźnik nadal drukuje, a kolejne znaki będą się nakładać. Ten fragment kodu C++ został uruchomiony, a wyniki są wyświetlane na poniższym obrazie:

Wniosek

W tym artykule dowiedzieliśmy się o funkcji memmove() w językach programowania C i C++. Omówiliśmy działanie funkcji memmove() na przykładzie języków C i C++ ze szczegółowym wyjaśnieniem każdej linii kodu. Mamy nadzieję, że ten artykuł okaże się pomocny w poszerzaniu wiedzy na temat funkcji memmove() w językach C i C++.