Tentang c

Tentang c

Perkenalan

Apa yang baru saja Anda baca adalah awal dari serangkaian artikel yang didedikasikan untuk pengembangan pada sistem Linux. Namun, dengan modifikasi kecil (jika ada), Anda akan dapat menggunakan pengetahuan ini yang akan Anda dapatkan dengan membaca seri kami pada sistem lain yang menggunakan alat yang sama (Openindiana, BSD ...). Artikel pertama ini akan berurusan secara bertahap dengan seluk -beluk menulis kode C di Linux. Anda diharapkan memiliki pengetahuan pemrograman dasar, baik pada sistem Linux/UNIX atau di platform lain. Idenya adalah bahwa Anda harus mengetahui dasar -dasar pemrograman, seperti apa variabel atau bagaimana mendefinisikan struktur. Meskipun, Anda akan mendapatkan informasi ini dari artikel ini, kami tidak akan banyak bersikeras pada konsep tingkat pemula. Kata Peringatan: Kami tidak akan memasukkan semua yang ada untuk diceritakan tentang C, karena itu akan membutuhkan banyak ruang dan tentu saja, kami sebenarnya tidak tahu segalanya tentang C.

Mengapa c?

Beberapa dari Anda mungkin berpendapat bahwa C bukan bahasa tingkat pemula terbaik yang pernah ada. Setuju, tetapi sekali lagi, Anda diharapkan memiliki beberapa pengetahuan pemrograman dasar, untuk satu. Kedua, C dan UNIX, dan Linux sesudahnya, diikat secara intim bersama bahwa hanya tampak wajar untuk memulai seri pengembangan kami dengan C. Dari kernel, yang sebagian besar ditulis dalam C, ke banyak aplikasi pengguna pengguna sehari-hari, C digunakan secara besar-besaran pada sistem Linux Anda. Misalnya, GTK didasarkan pada C, jadi jika Anda menggunakan aplikasi GNOME atau XFCE, Anda menggunakan aplikasi berbasis C. C adalah bahasa pemrograman lama yang sudah mapan, alat vital di banyak bagian di dunia TI, dari sistem tertanam hingga mainframe. Oleh karena itu, adil untuk berasumsi bahwa keterampilan C tidak hanya akan memperkaya CV Anda, tetapi mereka juga akan membantu Anda menyelesaikan banyak masalah pada sistem Linux Anda, yaitu hanya jika Anda menganggap ini serius dan banyak berlatih dengan membaca dan menulis C kode.

Tentang c

Sejarah

C berusia lebih dari 40 tahun, dengan awal di Bell Labs bersama Brian Kernighan, Dennis Ritchie dan Ken Thompson sebagai “tersangka biasa."UNIX Development dan evolusi C terkait erat, seperti yang kami katakan, karena UNIX pada awalnya ditulis dalam perakitan, tetapi itu memiliki banyak kekurangan. Oleh karena itu, saat pindah ke PDP-11 sebagai platform perangkat keras utama, para pengembang memulai C sebagai bahasa inti untuk UNIX. Pada tahun 1978, Kernighan dan Ritchie menulis, “The C Programming Language,” sebuah buku yang hari ini seperti 20 tahun yang lalu: buku tentang pemrograman C. Kami dengan sungguh -sungguh menyarankan Anda mendapatkannya.



Klasifikasi

Selalu ada orang yang tertarik pada klasifikasi hal -hal dan tentu saja, pemrograman tidak berbeda. Di samping bercanda, karena kami pada awalnya, kami pikir Anda harus tahu bahwa C adalah bahasa pemrograman terstruktur prosedural, dengan pengetikan yang lemah. Apa yang baru saja kami katakan, dalam bahasa Inggris, adalah bahwa C menggunakan prosedur (nama biasa yang digunakan oleh programmer C, dan yang akan kami gunakan juga, adalah fungsi), bahwa ia menggunakan pendekatan terstruktur (pikirkan blok kode) dan dan Akhirnya, ini mendukung konversi tipe implisit. Jika Anda tidak tahu apa artinya di atas, jangan takut, Anda akan mengetahuinya!

Pendekatan kita

Artikel ini yang hanya merupakan bagian pengantar dan kami akan secara teratur menerbitkan bagian berikutnya di mana setiap bab akan berurusan dengan bagian penting dari bahasa: variabel, pointer, struct, dll. (Berlangganan RSS Feed jika Anda belum melakukannya) di akhir bagian teoretis, kami akan menunjukkan kepada Anda contoh praktis, yang kami pilih Yest, sepotong kecil perangkat lunak yang ditulis oleh Kimball Hawkins (terima kasih, Kimball). Kami akan mengkompilasinya, lalu mengemasnya untuk sistem Debian dan Fedora. Pengembang Debian Andree LeidenFrost kemudian akan menunjukkan kepada Anda cara mengirimkan paket baru kami ke Repositori Debian, memastikan kami menghormati semua persyaratan paket yang akan diterima di Debian Distribution (terima kasih, Andree). Kami menyarankan Anda untuk mencoba contoh kami di sistem Anda, meluangkan waktu untuk memeriksa kode dan mencoba membuat modifikasi sendiri.

Alat yang diperlukan

Sebelum kita mulai, mari kita pastikan kita memiliki semua alat penting yang diinstal pada sistem Linux Anda. Anda akan membutuhkan kompiler, yaitu GCC, paket binutils dan editor teks atau IDE. Apakah Anda memilih editor teks atau semacam IDE sangat tergantung pada preferensi Anda, tetapi lebih dari itu nanti. Bergantung pada opsi distribusi dan instalasi Linux Anda yang telah Anda gunakan, Anda mungkin sudah memiliki alat yang diperlukan diinstal. Kami menyusun skrip kecil untuk membantu Anda melihat apakah Anda memiliki semua alat pengembangan wajib yang diinstal:

#!/bin/sh gcc -v jika [$? != 0]; Kemudian gema "GCC tidak terpasang!"fi ld -v jika [$? != 0]; Lalu echo "Harap instal binutils!"Fi 


Simpan skrip ini sebagai devtoolscheck.sh, jalankan:

 $ sh devtoolscheck.SH 

Di mesin saya, saya mendapatkan output:

$ sh devtools.SH menggunakan spesifikasi bawaan. Collect_gcc = gcc collect_lto_wrapper =/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.Target 1/LTO-Wrapper: x86_64-linux-gnu dikonfigurasi dengan:…/src/configure -v --with-pkgversion = 'debian 4.6.1-4 '--with-bugurl = file: /// usr/share/doc/gcc-4.6/readme.Bugs --Senable-bahasa = C, C ++, FORTRAN, OBJC, OBJ-C ++, GO --Prefix =/usr --program-suffix = -4.6 --Senable-shared --enable-multiarch [opsi konfigurasi terpeleakikan] Model Thread: POSIX GCC Versi 4.6.1 (Debian 4.6.1-4) GNU LD (GNU binutils untuk Debian) 2.21.52.20110606 

Mengapa Anda Membutuhkan binari Binutils dan GCC, Anda akan segera lihat. Sekarang mari kita fokus sedikit pada pertanyaan "Editor vs IDE".

Satu -satunya hal yang akan kami sarankan kepada Anda dalam hal ini adalah "Gunakan apa yang Anda rasa nyaman dan abaikan apa yang orang lain katakan kepada Anda". Masalah ini sangat subyektif dan tergantung pada banyak variabel. Misalnya, jika Anda mengembangkan (atau digunakan untuk mengembangkan) pada sistem operasi lain, Anda mungkin digunakan untuk IDE. Anda akan menemukan banyak IDE yang bagus di Linux, termasuk Eclipse, Geany, Kdevelop atau Anjuta. Coba instal mereka untuk melihat apa yang menurut Anda lebih cocok. Di sisi lain, jika Anda ingin pergi dengan cara editor sederhana, ada banyak pilihan di sini juga: vi (m), Emacs, Kate, Nano, Jed dan sebagainya. Dengan mencari di internet, Anda akan menemukan banyak diskusi tentang apa editor terbaik itu. Kami mengatakan menginstal beberapa dari mereka dan mencari tahu apa yang paling cocok untuk Anda. Anda adalah satu -satunya hakim ini, dan itu akan menjadi alat yang akan sering Anda gunakan, jadi luangkan waktu Anda, gunakan, baca tentang itu dan terbiasa dengan itu. Terlepas dari pilihan Anda, kami akan berasumsi bahwa Anda telah membuat pilihan Anda sehubungan dengan alat pengeditan dan Anda terbiasa dengan penggunaannya.

Proses kompilasi

Dengan kata -kata sederhana, proses ini adalah apa yang dimulai dari kode sumber yang Anda tulis dan jika semuanya berjalan dengan baik hasilnya adalah biner yang dapat dieksekusi atau perpustakaan. Tak perlu dikatakan, ada lebih dari itu tetapi sangat penting bagi Anda untuk memahami kalimat di atas sebelum Anda melanjutkan. Anda tidak perlu menghafal semua konsep sekarang karena mereka akan menjadi lebih jelas nanti. Pada tahap ini, hanya penting untuk mendapatkan ide umum.

Katakanlah kami memiliki kode sumber yang ditulis dan sekarang kami ingin kompiler memprosesnya dan memberi kami biner yang dapat dieksekusi. Alur kerja proses ini diilustrasikan di sebelah kanan Anda.

Harap dicatat bahwa ini hanya berlaku untuk C, yang merupakan bahasa yang dikompilasi, sebagai lawan dari bahasa yang ditafsirkan (Perl, Python, Shell), dan kami akan merujuk secara ketat ke GCC dan teman -teman untuk sisa pemandu kami. Saat gambar di kanan Anda menggambarkan preprocessor (CPP) mengambil kode sumber Anda, cari Instruksi preprocessor (Dalam C, mereka mulai dengan hash) dan jika semuanya terlihat benar, hasilnya adalah output yang dapat dimengerti oleh kompiler. Kompiler (GCC) melakukan semua kerja keras, termasuk optimasi kode untuk perangkat keras yang mendasarinya (jika Anda tertarik pada teori kompiler atau kompilasi silang, ada banyak buku bagus tentang masalah ini, tetapi kami menganggap tingkat yang lebih pemula di sini). Hasilnya adalah kode perakitan, dekat dengan mesin, dari mana binari akan dihasilkan (seperti alatnya). Pada akhirnya, tergantung pada opsi dan kode, "LD" akan menautkan yang dapat dieksekusi ke semua perpustakaan dan voila yang diperlukan! Hasil akhirnya: program Anda. Jika Anda ingin melihat semua file perantara yang dihasilkan, bendera GCC -Save -temps karena akan membantu Anda melakukannya. Kami menyarankan Anda membaca halaman manual GCC, setidaknya dengan hemat, dan pastikan bahwa Anda membuat kami terkini. Anda akan terbiasa dengan bendera GCC biasa dengan membaca contoh kami, tetapi Anda diharapkan untuk mengetahui apa yang mereka lakukan, bukan hanya menyalin dan menempelkan perintah yang Anda lihat di layar.



Contoh Program C

Setiap tutorial pemrograman yang menghargai diri sendiri dimulai dengan program "halo, dunia". Program ini tidak melakukan apa pun selain mencetak “Halo, dunia!"Di layar, lalu keluar. Ini digunakan untuk menggambarkan struktur yang sangat mendasar dari suatu program dan beberapa konsep penting. Jadi, tanpa basa -basi lagi, ini dia.

#termasuk  / * Ini adalah komentar */ int main () printf ("Halo, dunia!\N"); kembali 0; 

Sekarang, mari kita membedah program baris demi baris dan lihat apa yang diwakili setiap baris. Yang pertama adalah Petunjuk Preprocessor (lihat di atas) yang meminta untuk Stdio.H file, yang memberikan definisi untuk printf fungsi. File header adalah file yang biasanya berisi berbagai definisi (fungsi, variabel ...) dan membuat .file c kurang berantakan. Semua file sumber apa (.c) akan membutuhkannya adalah sebuah #termasuk pernyataan dan mungkin argumen ke linker. Segala sesuatu yang didefinisikan dalam file header yang disertakan akan tersedia dalam kode sumber Anda.

utama() adalah fungsi wajib dalam setiap program C. Seperti namanya, utama aktivitas akan terjadi di sini, terlepas dari berapa banyak fungsi yang telah Anda tentukan. int main () berarti bahwa fungsi ini tidak memiliki argumen (tanda kurung kosong) dan bahwa ia mengembalikan bilangan bulat (inisial int). Semua ini akan dibahas nanti. Hal terpenting di sini adalah printf fungsi, yang mengambil teks kita sebagai argumen dan menampilkannya. “\N"Berarti" Newline "dan setara dengan menggunakan Kunci Enter (atau ^m). Ini disebut urutan pelarian dan semua urutan pelarian di C dimulai dengan "\". Misalnya, untuk lebih memahami urutan pelarian, bayangkan Anda menulis kode HTML dan Anda perlu mencetak ""<” character. HTML's syntax uses angle brackets to define HTML tags, so chances are your bracket will be interpreted as HTML code instead of being displayed. So, what to do? We escape it with “<” and it will appear properly. Just the same, if you want to insert a newline character, you can't type it directly, as the compiler could care less if you write your program on a single line or not and therefore you you need to escape your new line character with “\N“.

kembali 0 memberi tahu kompiler bahwa semuanya baik -baik saja dan eksekusi utama() Fungsi berakhir di sana. Itu karena 0 adalah kode untuk eksekusi yang berhasil, sedangkan nilai lebih besar dari 0 (bilangan bulat) adalah indikasi bahwa ada yang salah. Kawat gigi keriting yang memulai dan mengakhiri fungsi utama membatasi blok eksekusi, yaitu, apa yang terjadi utama(), tetap di utama(). Anda mungkin telah memperhatikan titik koma di akhir pernyataan: mereka wajib sebagai tanda bahwa pernyataan saat ini berakhir di sana, tetapi mereka tidak boleh digunakan dalam arahan preprocessor sebagai #termasuk.



Kompilasi

Kompilasi akan dibahas secara lebih rinci di bagian -bagian mendatang dari panduan ini. Tetapi untuk kelengkapan di sini adalah contoh baris perintah sederhana tentang cara mengkompilasi dan menjalankan program ""Hello World"" pertama kami:

$ gcc -o halo halo.C $ ./halo halo, dunia!

Kesimpulan

Kami harap kami tidak terlalu banyak menjejalkan informasi di otak Anda dan bahwa Anda akan menikmati tinggal bersama kami di tutorial pemrograman ini. Bagian 2 akan berurusan dengan perbandingan antara C dan bahasa pemrograman lainnya untuk membantu mereka yang sudah memiliki pengalaman dalam pengembangan.

Inilah yang dapat Anda harapkan selanjutnya:

  • SAYA. C Perkembangan di Linux - Pendahuluan
  • Ii. Perbandingan antara C dan bahasa pemrograman lainnya
  • AKU AKU AKU. Jenis, Operator, Variabel
  • Iv. Alur kontrol
  • V. Fungsi
  • Vi. Pointer dan Array
  • Vii. Struktur
  • Viii. I/O Dasar
  • Ix. Gaya pengkodean dan rekomendasi
  • X. Membangun program
  • Xi. Kemasan untuk Debian dan Fedora
  • Xii. Mendapatkan paket di repositori resmi Debian

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 22.04 Jammy Jellyfish…
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Instal Arch Linux di VMware Workstation
  • Hal -hal yang harus diinstal pada Ubuntu 22.04
  • Unduh Linux
  • Perintah Linux Dasar
  • Perintah Linux: 20 perintah terpenting teratas yang Anda butuhkan untuk…
  • Ubuntu 20.04 Panduan
"