C 및 C++의 Memmove()

C Mich C Ui Memmove



오늘은 C, C++ 언어의 중요한 기능 중 하나인 memmove() 함수에 대해 알아보도록 하겠습니다. 하지만 그 전에 C 및 C++ 언어의 기본 사항을 간단히 살펴보겠습니다. 또한 두 C/C++ 언어에 어떤 기능이 있는지 논의할 것입니다.

C 프로그래밍 언어는 모든 목적에 대해 쉽고 매우 효과적입니다. 이를 통해 Windows OS, 데이터베이스, 인터프리터 및 기타 도구와 같은 소프트웨어 구현이 가능합니다. C는 초보자가 코딩을 배우기에 좋은 언어입니다. 이것이 C 프로그래밍이 다른 모든 컴퓨터 언어의 기초 역할을 하기 때문에 모국어로 알려진 이유입니다. C++ 프로그래밍 언어의 기초는 객체 지향 프로그래밍(OOP)의 아이디어를 기반으로 합니다. C++은 명확한 구조를 가지고 있기 때문에 사용자는 프로그램의 원리를 쉽게 개발하고 이해할 수 있습니다. C\C++ 프로그래밍 언어는 여러 기능을 수행하고 변수를 한 유형에서 다른 유형으로 전환하는 데 매우 다재다능합니다. memmove() 함수는 C/C++의 함수 중 하나입니다.







memmove() 함수는 소스가 나타내는 메모리 블록의 내용에서 대상이 나타내는 위치로 'num'바이트를 동시에 전송합니다. memmove() 함수는 소스 및 대상 개체가 겹치고 정의되지 않은 동작이 발생하지 않도록 하는 경우에만 유용합니다. memmove() 함수에 대해 자세히 알아보려면 memmove() 함수에서 구문과 예제를 구현하는 방법을 자세히 살펴보겠습니다.



통사론:

다음은 동일한 작성 스타일과 C 및 C++ 언어 모두에 대한 memmove() 함수의 구현입니다. 먼저 'void' 키워드를 작성합니다. 즉, 함수가 값을 반환하지 않으면 구현하려는 함수의 이름인 memmove() 함수의 이름을 작성합니다. 함수 괄호 안에 'void' 키워드와 함께 'num' 바이트를 배치할 수 있도록 대상을 작성합니다. 그런 다음 'num' 바이트를 가져오는 소스 위치를 씁니다.







매개변수:

손: 데이터가 복사되는 저장 위치의 주소입니다.

소스: 데이터가 복사되는 저장 위치의 주소입니다.



세다: 원본에서 대상으로 복사할 데이터의 양입니다.

반환 값:

그 대가로 대상 메모리 영역의 주소를 얻습니다. Dest는 memmove() 함수에 의해 반환됩니다.

예제 1: C에서 Memmove() 함수 구현

C 언어의 첫 번째 간단한 예제 구현을 시작하겠습니다. 작성을 시작하려면 먼저 프로그램을 작성하고 실행할 수 있도록 C 컴파일러가 필요합니다. 이를 위해 C 컴파일러를 열고 프로그램 구현을 시작하십시오.

#include
#include <문자열.h>

정수 메인 ( )
{
문자 ch1 [ ] = { '엘' , '나' , 'N' , '안에' , '엑스' } ;

int 길이 = 크기 ( ch1 ) / 크기 ( ch1 [ 0 ] ) ;

printf ( 'memmove() 함수를 적용하기 전에: ' ) ;
~을 위한 ( 정수 = 0 ; 나 < 길이; 나++ )
{
printf ( '%씨' , 채널1 [ ] ) ;
}

* 채널2 = & ch1 [ ] ;
메모 ( ch2, ch1, 크기 ( ) * ) ;

printf ( ' \N \N memmove() 함수를 적용한 후: ' ) ;

~을 위한 ( 정수 = 0 ; 나 < 5 ; 나++ )
{
printf ( '%씨 ' , 채널1 [ ] ) ;
}
반품 0 ;

}


우리는 항상 컴파일러를 시작한 후 핵심 프로그램 모듈을 통합하여 시작합니다. 이러한 모듈은 번들로 제공되는 C 언어 모듈입니다. 모듈을 구성하는 데 수십 줄의 코드가 아니라 이러한 모듈을 포함하려면 한 줄의 코드만 입력하면 됩니다. '#' 표시기는 모듈을 프로그램에 추가하기 위해 'include' 키워드를 사용하기 전에 먼저 모듈을 로드하도록 번역자에게 알립니다. 'stdio.h' 모듈은 컴파일러가 사용자로부터 데이터를 받아 사용자에게 보여주는 것을 의미합니다. 프로그램의 두 번째 모듈은 “#include ”로 기존 프로그램에서 문자열 관련 함수를 사용할 수 있도록 합니다.

그런 다음 프로그램에서 구현하려는 실제 코드 줄을 작성할 수 있도록 main() 함수를 시작합니다. 6행에서 문자 유형의 문자 배열 이름 'ch1'을 선언합니다. 그런 다음 문자 값을 할당합니다. 그런 다음 'ch1'의 길이를 계산하고 'for 루프'를 사용하여 입력 배열 'ch1'을 인쇄합니다.

그런 다음 문자 유형의 'ch2' 배열에 대한 포인터를 선언하고 'ch1' 배열의 주소를 'ch2' 배열에 할당합니다. 그런 다음 printf() 문을 사용하여 인쇄합니다. 이전 그림의 출력을 살펴보겠습니다.

예제 2: C++에서 Memmove() 함수 구현

다음은 C++ 언어에서 memmove() 함수가 수행되는 방법을 보여주는 기본 예제입니다. 작성을 시작하려면 먼저 프로그램을 작성하고 실행할 수 있도록 C++ IDE가 필요합니다. 이를 위해 C++ 컴파일러를 열고 프로그램 구현을 시작하십시오.

컴파일러를 연 후에는 항상 프로그램을 실행하기 위한 C++ 프로그래밍 언어에 필요한 헤더 파일을 포함하는 것으로 시작합니다. 프로그램을 구성하고 memmove() 메서드를 사용하려면 먼저 'iostream' 및 'cstring'이라는 두 가지 기본 헤더 파일을 포함합니다. C++는 배열 및 문자열 작업을 위한 여러 가지 방법을 제공합니다. 이러한 함수는 원본에서 대상으로 데이터의 특정 바이트 수를 복사하는 데 사용되는 '#include ' 헤더 파일이 있는 프로그램에 헤더 파일이 포함될 때 사용할 수 있습니다. 헤더 파일 '#include '은 사용자의 데이터 입력 및 출력에 모두 사용됩니다. 그런 다음 코드에서 표준 '네임스페이스 std'를 사용하여 C++ 프로그래밍 언어의 표준 구문을 사용하므로 개체, 메서드 및 매개 변수가 전체 프로그램에서 동일한 범위를 참조하는 것을 방지할 수 있습니다.

#include
#include
네임스페이스 표준 사용;

정수 메인 ( )
{
문자 src [ 오십 ] = '1234567890' ;
문자 목적지 [ 오십 ] = '0987654321' ;

쿠우트 << 'memmove를 대상에 적용하기 전에: ' << 시작 << 끝;
메모 ( 목적지, 6 ) ;
쿠우트 << 'memmove를 대상에 적용한 후: ' << 소유

반품 0 ;
}


실제 코드 행 실행을 시작하기 위해 main() 함수 작성을 시작합니다. 7행에는 'src[50]' 및 'dest[50]'으로 선언된 길이 50의 두 문자 유형 배열이 있습니다. 'memmove()를 대상에 적용하기 전에: '라는 메시지를 인쇄하기 위해 'cout' 문을 사용합니다. 그런 다음 'dest' 매개변수를 전달하여 'dest' 배열의 값을 인쇄합니다. 그리고 “src[50]”과 “dest[50]”으로 선언된 문자형 변수에 memmove() 함수를 적용하여 origin(src)에서 target(dest)까지 일정 바이트만큼 오버랩한다. '카운트'의 수. 'src'에서 'dest'로 복사되는 바이트 수를 식별합니다. 다음 그림에서 볼 수 있듯이 '6' 카운트 숫자를 선언했습니다.

그런 다음 다시 'cout' 문을 사용하여 'After Applying memmove() to Destination: '라는 메시지를 표시하고 '문자' 유형의 변수 'dest' 배열을 전달합니다. 프로그램 실행을 중지하려면 프로그램 종료 시 return 문을 사용해야 합니다. 그런 다음 main 함수에 0을 반환하여 프로그램이 성공적으로 실행되고 목표를 달성했음을 나타냅니다.

memmove() 메서드의 다음 출력에서 ​​중첩이 있는 경우(예: 초기 포인터가 문자 6으로 이동하면 포인터가 계속 인쇄되고 다음 문자가 중첩됨)를 확인할 수 있습니다. 이 C++ 코드 스니펫이 실행되었으며 결과가 다음 이미지에 표시됩니다.

결론

이 기사에서는 C 및 C++ 프로그래밍 언어의 memmove() 함수에 대해 배웠습니다. 코드의 모든 라인에 대한 자세한 설명과 함께 C 및 C++의 예제를 통해 memmove() 함수가 어떻게 작동하는지 이야기했습니다. 이 기사가 C 및 C++의 memmove() 함수에 대한 지식을 개발하는 데 도움이 되기를 바랍니다.