Pengenalan
- 3183
- 866
- Noah Torp
Oleh kerana di bahagian pertama kami artikel ini kami katakan kami menjangkakan anda, pembaca, mempunyai pengetahuan pengaturcaraan, di bahagian ini kami ingin membantu anda mendapatkan di mana C berdiri berbanding dengan bahasa pengaturcaraan lain yang mungkin anda ketahui. Pilihan bahasa itu cukup sukar kerana pelbagai kriteria, tetapi pada akhirnya kami berhenti di C ++, Perl dan Python. Oleh kerana bahasa pengaturcaraan dapat diklasifikasikan dengan banyak cara (bergantung kepada paradigma, sintaks atau gaya, sebagai contoh), kami tidak cuba mencari bahasa yang berada dalam kategori yang sama dengan C. Sebaliknya, kerana bahasa -bahasa yang disebutkan di atas cukup popular di dunia Linux, kami memilih mereka, menyebutkan apa tempat setiap bahasa dalam skema yang hebat, apa yang biasanya digunakan untuk dan tentu saja, perbezaan di antara mereka dan c. Artikel ini akan disusun seperti berikut: Kami akan bermula dengan elemen penting setiap bahasa, seperti pengisytiharan berubah, menaip atau struktur dan membandingkannya dengan bagaimana ia dilakukan dengan c. Oleh itu, kami berharap dapat memberi anda idea mengenai bahasa sebelum kita memulakan. Bahagian -bahagian artikel ini dibuat akan menjadi seperti struktur yang diumumkan artikel ini, untuk memudahkan pemahaman.
Perbandingan
Jenis, pengendali, pembolehubah
C++
C ++ pada mulanya dinamakan "C dengan kelas", yang mengatakan banyak mengenai hubungannya dengan C. Ia dilihat secara meluas sebagai superset C (oleh itu C ++ pengendali kenaikan unary ++), memperkenalkan ciri pengaturcaraan berorientasikan objek. Jenis pada dasarnya digunakan sama, dengan bool diperkenalkan di C ++ untuk operasi Boolean. Pada asasnya, ketika bercakap mengenai perbezaan C dan C ++, kebanyakannya berasal dari konsep OOP C ++ mempunyai dan C tidak. Contohnya C ++ mempunyai overloading operator, istilah khusus OOP, yang bermaksud bahawa pengendali mungkin mempunyai pelaksanaan yang berbeza bergantung pada data yang dikendalikannya. Sebagai contoh, dalam C ++ anda boleh melakukan ini:
a << 2
Sekarang, jika A adalah integer, ini akan melakukan operasi bitwise di atasnya (shift kiri sebanyak 2), tetapi jika A adalah aliran output, garis di atas akan cuba menulis '2' kepadanya. Tingkah laku semacam ini adalah salah satu sebab C ++ dikritik kerana membenarkan amalan pengaturcaraan yang lemah. Pembolehubah dan pemalar diisytiharkan dengan cara yang sama seperti dalam c.
Perl
Dengan perl lebih mudah: ia hanya mempunyai tiga jenis data. Ini adalah skalar, tatasusunan dan hash atau array bersekutu. Skalar diawali dengan tanda dolar, tatasusunan diawali dengan @ dan hash adalah prefixed dengan %s. Perbezaan mengenai jenis ialah Perl adalah bahasa pengaturcaraan yang dinamik, manakala C adalah lemah, yang bermaksud bahawa dalam C anda akan berurusan dengan pengisytiharan pembolehubah yang betul, seperti "pembolehubah ini adalah integer" atau "pembolehubah lain ini adalah penunjuk kepada Float ”. Perbezaan mengenai pengendali aritmetik hanya Perl mempunyai '**' untuk eksponensi, sementara C memerlukan fungsi untuk mencapai itu.
Python
Pengisytiharan pembolehubah Python adalah berasaskan konteks. Sebagai contoh, kami ingin mengisytiharkan rentetan, integer dan terapung:
var1 = "String" var2 = 100 var3 = 100.98
Dengan C, ini pasti seperti
char* var1 = "string"; int var2 = 100; float var3 = 100.98;
C tidak mempunyai jenis rentetan seperti bahasa lain, jadi rentetan mesti diisytiharkan sebagai pelbagai aksara atau penunjuk kepada char, sementara Python menawarkan nombor, kamus, rentetan, senarai dan tupel sebagai jenis data.
Kawalan aliran
Keempat -empat bahasa yang diterangkan di sini mempunyai banyak perkara yang sama ketika mengawal aliran. Contohnya, ketika memulakan jika blok, tidak memerlukan kata kunci yang berakhir, seperti fi dalam bash atau algol68. Bercakap tentang jika blok, sintaks adalah serupa, jadi jika anda digunakan untuk program di C ++, Perl atau Python anda akan dapati cara C sangat biasa. Perkara yang sama boleh dikatakan mengenai operasi kawalan aliran yang lain: untuk, lakukan, sementara, menukar/kes atau pecah/teruskan. Sekali lagi, jika anda terbiasa dengan cara tiga bahasa mengawal aliran, anda memerlukan beberapa minit untuk membiasakan diri dengan c. Beberapa perbezaan utama boleh: Perl mempunyai lebih banyak kata kunci untuk menangani perkara ini daripada c, seperti Redo, terakhir atau Seterusnya. Python mempunyai lulus Kata kunci untuk ... tidak melakukan apa -apa pada dasarnya, tetapi berguna apabila seseorang memerlukan kelas kosong. Sebagai contoh:
kelas Kosong: lulus
Fungsi
Perisytiharan fungsi mudah di C akan seperti ini:
int jumlah (int a, int b) kembali a + b;
Ini akan menjadi fungsi bernama jumlah yang mengembalikan integer daripada mengira jumlah argumen ', a dan b, Juga bilangan bulat. Perhatikan blok yang membuat perselisihan yang jelas ke mana badan fungsi bermula dan ketika ia berakhir. Di Perl fungsi istilah digunakan secara bergantian dengan subrutin. Anda boleh, seperti dalam C, mula -mula mengisytiharkan fungsi, kemudian menentukannya, atau mengisytiharkannya dan menentukannya dalam satu pukulan, seperti yang kita lakukan di atas. Anda mesti menggunakan sub kata kunci untuk memberitahu penterjemah perl apa yang anda mahu lakukan. Di Python contoh jumlah kami akan kelihatan seperti ini:
def Jumlah (a, b): kembali a + b
Anda mungkin menyedari bahawa kami tidak mengatakan apa -apa mengenai c++. Nah, sejauh yang kita bimbang, tidak ada perbezaan antara C dan C ++ dalam hal ini.
Petunjuk dan tatasusunan
Penunjuk adalah pemboleh ubah yang memegang lokasi memori pembolehubah lain. Seperti di C, petunjuk dan tatasusunan terikat bersama -sama dengan cukup ketat dan menawarkan banyak ciri canggih kepada pengaturcara C ++. Sekali lagi, tidak ada perbezaan penting antara kedua -dua. Perl mempunyai Rujukan yang menawarkan fungsi yang sama. Sebagai contoh, sekeping kod ini mentakrifkan pembolehubah bernama VAR dan rujukan kepadanya bernama Refvar:
$ var = 20; $ refvar = \ $ var;
Di C, kita akan melakukan sesuatu seperti
int var; var = 20; int *refvar; Refvar = &var;
Perl, seperti Python, tidak membenarkan pengaturcara melakukan manipulasi memori langsung. Ada yang melihat ini sebagai perkara yang baik, yang lain tidak. Python menawarkan ctypes, yang merupakan perpustakaan yang menawarkan fungsi penunjuk () untuk menggunakan petunjuk. Kisah pendek ialah: Python tidak menggunakan petunjuk. Kisah panjang ialah cara Python untuk merujuk pembolehubah, yang hanya bernilai, berbeza dengan pengaturcara yang digunakan untuk c.
Sekiranya anda menggunakan tatasusunan pada C ++ atau Perl, konsepnya adalah sama. Perl mempunyai sintaks yang berbeza, tetapi jika anda sudah tahu apa array, anda akan baik -baik saja di C. Python menawarkan array modul yang menawarkan fungsi ini, kerana ia sudah mempunyai senarai sebagai jenis asas, kecuali array lebih ketat.
Struktur
Di C, struct adalah rekod yang mengandungi set objek tetap, dilabelkan, semuanya dibungkus menjadi satu. Sebagai contoh:
Struktur Pelanggan Int Account; Char *nama; keseimbangan terapung; ;
Memetik Wikipedia, "Dalam C ++, a struktur adalah kelas yang ditakrifkan dengan Struktur
kata kunci. Ahli dan kelas asasnya secara umum secara lalai. Kelas yang ditakrifkan dengan kelas
Kata kunci mempunyai ahli peribadi dan kelas asas secara lalai. Ini adalah satu -satunya perbezaan antara structs dan kelas dalam c++.". Di Perl sehingga versi 5, structs menjadi masalah (atau kekurangannya), tetapi sekarang ada Perldsc (Perl Data Structures Cookbook), boleh didapati di Perldoc.org. Di Python, anda boleh (baik, hampir) menggunakan tuples atau kamus untuk ini.
Termasuk fail
Seperti yang anda lihat di bahagian pertama, dalam C One menggunakan arahan preprocessor untuk memasukkan definisi dari fail lain. Fungsi ini ditawarkan juga oleh C ++, dengan sintaks yang sama, kecuali fail header dinamakan $ nama.HPP dan bahawa anda tidak memerlukan sambungan fail:
#include
Iostream adalah bersamaan dengan stdio.h. Di Perl, kami mempunyai gunakan Kata kunci untuk ini, dan boleh digunakan seperti ini:
gunakan Modul;
Di Python, setara penggunaan adalah import, digunakan dengan cara yang sama seperti dalam perl, kecuali ia tidak memerlukan titik koma pada akhir.
Pertimbangan lain
Ramai di antara anda telah menyedari bahawa semua bahasa yang dipilih untuk perbandingan kami berorientasikan objek, sementara c tidak. Ini bukan perbandingan yang tidak adil, kerana jika kita akan memilih Fortran atau Prolog sebagai syarat perbandingan kita, kemungkinan, kerana banyak pengaturcara hari ini tidak menggunakan bahasa -bahasa ini, artikel kita tidak akan sangat popular. Sebaliknya, kami memikirkan ini sebagai cara untuk mendapatkan kaki anda basah, kerana kebiasaan adalah sebahagian daripada sifat manusia dan jika anda pernah menggunakan satu atau lebih bahasa -bahasa ini, akan lebih mudah pada anda apabila anda mula belajar c. Oleh itu, bahagian artikel ini dimaksudkan sebagai bantuan dan jika kita berjaya melakukannya, itu tidak mengapa.
C dan c++
Sebilangan daripada anda mungkin tertanya -tanya: jika c ++ begitu serupa dengan c, tetapi ia lebih kompleks dan menawarkan lebih banyak, mengapa mengganggu dengan c? Ini telah menjadi topik yang dibincangkan lebih daripada yang sepatutnya, dan kami akan cuba memberi jawapan sendiri. Pertama sekali, C lebih mudah. K & R mempunyai 266 muka surat, manakala "bahasa pengaturcaraan C ++" oleh pencipta, Bjarne Stroustrup, mempunyai 1090. 'Nuff berkata. Kedua, kod yang ada. Tidak kira seni bina perkakasan, sistem operasi atau tujuan, C meluas dan kemudian beberapa. Dari kernel OS ke perpustakaan GUI, C ada dan tidak mempunyai niat untuk pergi ke mana sahaja. Itu bukan untuk mengatakan c ++ tidak digunakan oleh banyak pemaju. Kami hanya mengatakan bahawa lambat laun anda akan mendapati diri anda harus bekerja dengan kod C atau menggunakan bahasa yang dipengaruhi olehnya, jadi pengetahuan C selalu tampan pada CV. Ketiga, jika anda ingin belajar C dan C ++, anda lebih baik bermula dengan C, kerana kesederhanaan yang disebutkan di atas dan kerana apabila anda mempunyai asas, C ++ akan kelihatan lebih mudah untuk belajar. Akhirnya, ini semua mengenai alat yang sesuai untuk pekerjaan itu. Jika anda memerlukan kod pantas, keupayaan untuk pergi tahap rendah dan bahasa yang mudah, pergi dengan c.
Kesimpulan
Selepas bahagian kedua artikel ini, kita akan mula mempelajari pengaturcaraan C di Linux, seperti yang kita fikirkan bahawa terlalu banyak bahagian pengenalan tidak masuk akal. Kami akan gembira dapat menolong anda di sana.
Inilah yang boleh anda harapkan seterusnya:
- I. C Pembangunan di Linux - Pengenalan
- Ii. Perbandingan antara c dan bahasa pengaturcaraan lain
- Iii. Jenis, pengendali, pembolehubah
- Iv. Kawalan aliran
- V. Fungsi
- Vi. Petunjuk dan tatasusunan
- VII. Struktur
- Viii. Asas I/O
- Ix. Gaya dan cadangan pengekodan
- X. Membina program
- Xi. Pembungkusan untuk Debian dan Fedora
- Xii. Mendapatkan pakej di repositori debian rasmi
Tutorial Linux Berkaitan:
- Perkara yang hendak dipasang di Ubuntu 20.04
- Pembaca PDF Terbaik untuk Linux
- Pengenalan kepada Automasi, Alat dan Teknik Linux
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Perkara yang perlu dipasang di Ubuntu 22.04
- Cara Memasang Adobe Acrobat Reader di Ubuntu 22.04 Jammy ..
- Pengenalan kepada Vagrant
- Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
- Ubuntu 20.04 Panduan
- Sistem Hung Linux? Cara melarikan diri ke baris arahan dan ..
- « Cara menjalankan ujian kelajuan dari baris arahan menggunakan speedtest-cli
- Cara melancarkan bekas dengan Docker mengarang »