Memmove() dalam C dan C++

Memmove Dalam C Dan C



Hari ini, kita akan mempelajari salah satu fungsi penting bahasa C dan C++ iaitu fungsi memmove(). Tetapi sebelum itu, mari kita lihat secara ringkas asas-asas bahasa C dan C++. Kami juga akan membincangkan apakah fungsi dalam kedua-dua bahasa C/C++.

Bahasa pengaturcaraan C adalah mudah dan agak berkesan untuk semua tujuan. Pelaksanaan perisian seperti Windows OS, Pangkalan Data, Jurubahasa, dan alatan lain adalah mungkin dengannya. C ialah bahasa yang bagus untuk pemula mempelajari pengekodan. Itulah sebabnya pengaturcaraan C dikenali sebagai bahasa ibunda kerana ia berfungsi sebagai asas untuk semua bahasa komputer lain. Asas bahasa pengaturcaraan C++ adalah berdasarkan idea pengaturcaraan berorientasikan objek (OOP). Pengguna boleh membangunkan dan memahami prinsip program dengan mudah kerana C++ mempunyai struktur yang jelas. Bahasa pengaturcaraan C\C++ sangat serba boleh dalam melaksanakan pelbagai fungsi dan menukar pembolehubah daripada satu jenis ke jenis yang lain. Fungsi memmove() ialah salah satu fungsi C/C++.







Fungsi memmove() memindahkan bait 'num' secara serentak daripada kandungan blok memori yang ditunjukkan oleh sumber ke arah lokasi yang ditunjukkan oleh destinasi. Fungsi memmove() hanya bermanfaat apabila objek sumber dan destinasi bertindih dan menghentikan tingkah laku yang tidak ditentukan daripada berlaku. Untuk mengetahui lebih lanjut tentang fungsi memmove(), mari kita gali lebih dalam dan lihat cara melaksanakan sintaks dan contoh dalam fungsi memmove().



Sintaks:

Berikut ialah gaya penulisan yang sama dan pelaksanaan fungsi memmove() untuk kedua-dua bahasa C dan C++. Pertama, kami menulis kata kunci 'kosong' yang bermaksud bahawa jika fungsi itu tidak mengembalikan sebarang nilai, kami menulis nama fungsi yang ingin kami laksanakan iaitu fungsi memmove(). Dalam kurungan fungsi, kami menulis destinasi supaya kami boleh meletakkan bait 'bilangan' dengan kata kunci 'kosong'. Kemudian, kami menulis lokasi sumber dari mana kami mendapat bait 'bilangan'.







Parameter:

tangan: Alamat ke lokasi storan di mana data disalin.

src: Alamat ke lokasi storan dari mana data disalin.



kira: Jumlah data untuk disalin dari sumber ke destinasi.

Nilai Pulangan:

Sebagai balasan, kami mendapat alamat ke kawasan memori sasaran. Dest dikembalikan oleh fungsi memmove().

Contoh 1: Pelaksanaan Fungsi Memmove() dalam C

Mari kita mula melaksanakan contoh bahasa C yang pertama dan mudah. Untuk mula menulis, kita memerlukan pengkompil C terlebih dahulu supaya kita boleh menulis dan melaksanakan program. Untuk itu, buka pengkompil C dan mula melaksanakan program.

#include
#include

int utama ( )
{
char ch1 [ ] = { 'L' , 'saya' , 'n' , 'dalam' , 'x' } ;

int panjang = saiz ( ch1 ) / saiz ( ch1 [ 0 ] ) ;

printf ( 'Sebelum menggunakan fungsi memmove(): ' ) ;
untuk ( int i = 0 ; i < panjang; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}

char * ch2 = & ch1 [ dua ] ;
memmove ( ch2, ch1, saiz ( char ) * dua ) ;

printf ( ' \n \n Selepas menggunakan fungsi memmove(): ' ) ;

untuk ( int i = 0 ; i < 5 ; i++ )
{
printf ( '%c' , ch1 [ i ] ) ;
}
kembali 0 ;

}


Kami sentiasa bermula dengan memasukkan modul program teras selepas memulakan pengkompil. Modul ini ialah modul bahasa C yang digabungkan. Kita hanya perlu menaip satu baris kod untuk memasukkan modul ini, berbanding berpuluh-puluh baris kod untuk membina modul. Penunjuk '#' memberitahu penterjemah untuk memuatkan modul terlebih dahulu sebelum menggunakan kata kunci 'termasuk' untuk menambah modul pada program. Modul 'stdio.h' bermakna pengkompil menerima data daripada pengguna dan menunjukkannya kepada pengguna. Modul kedua program ialah '#include ' supaya kita boleh menggunakan fungsi berkaitan rentetan dalam program sedia ada.

Kemudian, kita mulakan fungsi main() supaya kita boleh menulis baris kod sebenar yang ingin kita laksanakan dalam program. Dalam baris 6, kami mengisytiharkan nama tatasusunan aksara 'ch1' bagi jenis aksara. Kemudian, kami menetapkan nilai watak kepadanya. Selepas itu, kami mengira panjang 'ch1' dan mencetak tatasusunan input 'ch1' menggunakan 'untuk gelung'.

Selepas itu, kami mengisytiharkan penuding kepada tatasusunan 'ch2' bagi aksara jenis dan menetapkan alamat tatasusunan 'ch1' kepada tatasusunan 'ch2'. Kemudian, kami mencetaknya menggunakan pernyataan printf(). Mari lihat output ilustrasi sebelumnya:

Contoh 2: Pelaksanaan Fungsi Memmove() dalam C++

Berikut ialah contoh asas yang menunjukkan bagaimana fungsi memmove() berfungsi dalam bahasa C++. Untuk mula menulis, kita memerlukan C++ IDE terlebih dahulu supaya kita boleh menulis dan melaksanakan program. Untuk itu, buka pengkompil C++ dan mula melaksanakan program.

Selepas membuka pengkompil, kami sentiasa bermula dengan memasukkan fail pengepala yang diperlukan untuk bahasa pengaturcaraan C++ untuk program dijalankan. Untuk membina program dan menggunakan kaedah memmove(), kami mula-mula memasukkan dua fail pengepala asas - 'iostream' dan 'cstring'. C++ menyediakan beberapa cara untuk bekerja dengan tatasusunan dan rentetan. Fungsi ini disediakan untuk digunakan apabila fail pengepala disertakan dalam program dengan fail pengepala “#include  ” yang digunakan untuk menyalin bilangan bait data tertentu daripada sumber ke destinasi. Fail pengepala “#include ”  digunakan untuk kedua-dua input dan output data daripada pengguna. Kemudian, kami menggunakan 'ruang nama std' standard dalam kod kami untuk menggunakan sintaks standard bahasa pengaturcaraan C++ supaya kami boleh menghalang objek, kaedah dan parameter daripada merujuk skop yang sama sepanjang keseluruhan program.

#include
#include
menggunakan ruang nama std;

int utama ( )
{
char src [ lima puluh ] = '1234567890' ;
char dest [ lima puluh ] = '0987654321' ;

cout << 'Sebelum Memohon memmove ke Destinasi: ' << mulakan << endl;
memmove ( dest, src, 6 ) ;
cout << 'Selepas Memohon memmove ke Destinasi: ' << tangan

kembali 0 ;
}


Kami mula menulis fungsi main() untuk memulakan pelaksanaan baris kod sebenar. Dalam baris 7, terdapat tatasusunan jenis dua aksara dengan panjang 50 yang diisytiharkan sebagai 'src[50]' dan 'dest[50]'. Kami menggunakan pernyataan 'cout' untuk mencetak mesej, 'Sebelum Memohon memmove() ke Destinasi: '. Kemudian, kami lulus parameter 'dest' untuk mencetak nilai tatasusunan 'dest'. Kemudian, fungsi memmove() digunakan pada pembolehubah jenis aksara yang diisytiharkan sebagai 'src[50]' dan 'dest[50]' untuk bertindih bilangan bait tertentu dari asal(src) ke sasaran(dest) dengan bilangan 'bilangan'. Ini mengenal pasti bilangan bait yang disalin daripada 'src' kepada 'dest'. Seperti yang anda lihat dalam ilustrasi berikut, kami mengisytiharkan nombor kiraan '6'.

Selepas itu, kami menggunakan pernyataan 'cout' sekali lagi untuk memaparkan mesej, 'Selepas Memohon memmove() ke Destinasi: ', dan lulus tatasusunan 'dest' pembolehubah jenis 'character'. Untuk menghentikan program daripada berjalan, kita mesti menggunakan pernyataan pulangan pada akhir program. Kami kemudiannya kembali 0 ke fungsi utama, menunjukkan bahawa program itu berjaya dilaksanakan dan mencapai objektifnya.

Anda boleh melihat dalam keluaran berikut bagi kaedah memmove() bahawa jika terdapat pertindihan, contohnya, apabila penuding awal bergerak ke huruf 6, penuding terus mencetak dan aksara berikut akan bertindih. Coretan kod C++ ini telah dijalankan dan hasilnya dipaparkan dalam imej berikut:

Kesimpulan

Dalam artikel ini, kami mempelajari tentang fungsi memmove() dalam bahasa pengaturcaraan C dan C++. Kami bercakap tentang bagaimana fungsi memmove() berfungsi melalui contoh C dan C++ dengan penjelasan terperinci bagi setiap baris kod. Kami berharap artikel ini membantu anda dalam mengembangkan pengetahuan anda tentang fungsi memmove() dalam C dan C++.