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
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
#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++.