Halo dan selamat datang kembali.
Dalam kuliah ini, saya ingin untuk berbicara tentang beberapa topik lebih lanjut
yang dapat Anda pelajari.
Kami pada dasarnya mengakhiri kelas.
Kami sedang membungkusnya.
Jadi kami tidak mendapatkan untuk menutupi semuanya.
Jelas, ini adalah kelas pemula.
Jadi ada banyak yang canggih topik yang dapat Anda pelajari
lebih lanjut agar c benar-benar menjadi hebat dalam pemrograman c, dan saya hanya ingin
menyebutkan beberapa di antaranya.
Jadi pertama-tama, kami tidak masuk ke typedefs.
Saya ingin memiliki berbicara tentang itu, tetapi ini
lebih merupakan konsep lanjutan.
Kami berbicara tentang enum.
Dan enum adalah cara membuat tipe Anda sendiri.
Tapi khusus di c, ada kata kunci yang disebut typedef dan Anda dapat membuat
tipe data Anda sendiri.
Ini sangat berguna, lebih banyak lagi dari konsep yang maju.
Anda pasti bisa pelajari lebih lanjut tentang itu.
Ada lebih banyak informasi tentang preprocessor yang dapat
Anda pelajari, khususnya rangkaian string.
Praprosesor ingat yang berjalan sebelum compiler.
Kami belajar tentang pernyataan yang ditentukan.
Kami belajar tentang beberapa hal lain di sana-sini, tetapi
preprocessor bisa menjadi bagian lain dengan lebih banyak informasi tentangnya.
Anda dapat menggunakannya pada dasarnya untuk mengoptimalkan banyak kode Anda, sehingga Anda dapat
menjalankannya terlebih dahulu.
Anda dapat melakukan fungsi sebaris yang berjalan di preprocessor,
semua konsep bagus.
Ada banyak lagi tentang bintang kosong.
Bintang kosong, ingat, banyak fleksibilitas.
Secara khusus, malloc fungsi mengembalikan bintang kosong.
Kita bisa membuat fungsi mengambil batal pointer dan berikan pointer kosong di
sekitar untuk membuatnya lebih fleksibel.
Masih banyak lagi kita bisa belajar tentang itu.
Pustaka statis dan objek bersama.
Kami tidak membicarakan ini konsep perpustakaan.
Kami menggunakan perpustakaan saat kami menautkan.
Secara khusus, banyak dari
perpustakaan didefinisikan dalam perpustakaan standar c.
Tetapi Anda dapat membuat perpustakaan Anda sendiri.
Kami membuat program.
Program adalah proses yang berjalan di memori.
Tetapi perpustakaan sebenarnya adalah kode lain yang dapat Anda gunakan kembali di program lain.
Jadi contoh, perpustakaan standar c.
Jika Anda telah memprogram di tempat lain bahasa, biasanya, mereka adalah API yang
disertakan dengan bahasa tersebut.
Ada dua jenis perpustakaan yang dapat Anda buat.
Anda dapat membuat statis perpustakaan tempat Anda mengkompilasi semua
kode itu saat Anda menautkan.
Dan kemudian Anda juga dapat membuat yang dibagikan objek di mana
selama eksekusi program, Anda akan mencari fungsi dan memanggilnya.
Jadi perpustakaan statis biasanya berakhir dalam titik a dan mereka
dikompilasi pada waktu statis atau mereka dikompilasi di saat Anda mengkompilasi program.
Objek yang dibagikan adalah file titik atau mereka juga Anda dapat menganggapnya sebagai
dll jika Anda sudah pernah mendengar tentang perpustakaan tautan
dinamis dan visual c plus plus.
Tapi objek yang dibagikan tidak waktu kompilasi.
Sekali lagi, ini adalah cara untuk menggunakan kembali kode.
Kita bisa mempelajari konsep-konsep ini dan saya bisa menunjukkan kepada Anda cara membangun
perpustakaan statis serta objek bersama.
makro.
Kami tidak mendapatkan kesempatan untuk berbicara tentang makro.
Ini adalah topik lanjutan.
Ini dijalankan oleh preprocessor terutama melakukan substitusi,
substitusi string.
Beberapa fungsi yang kami dipelajari sebenarnya ditulis
sebagai makro, seperti makro tegas.
Makro dapat dieksplorasi secara lebih rinci.
serikat pekerja.
Serikat pekerja biasanya akan pergi bersama dengan struct.
Ini adalah cara untuk memiliki banyak perbedaan jenis data yang dikembalikan atau jenis elemen anggota yang
berbeda di dalam a struct yang mewakili hal yang sama.
Jadi Anda bisa memiliki struktur yang memiliki satu anggota, tetapi anggota itu dapat
menjadi pelampung masuk dan Anda akan menggunakan serikat untuk melakukan itu.
Pointer fungsi topik lainnya.
Kami berbicara tentang karakter pointer terutama, dan bahkan pointer integer
dan pointer ganda.
Tetapi Anda sebenarnya dapat memiliki petunjuk yang menunjuk ke berbagai fungsi.
Jadi saat program Anda berjalan, Anda dapat menjalankan satu fungsi.
Dan kemudian saat berikutnya berjalan, itu bisa menjalankan fungsi yang
berbeda berdasarkan input pengguna atau semacam itu.
Pointer fungsi adalah seluruh topik lainnya.
Pointer tingkat lanjut.
Masih banyak lagi petunjuk lainnya dari apa yang telah kita diskusikan.
Kami membahas dasar-dasar pointer, tapi kita bisa membicarakan
pointer dengan lebih detail.
Ada pointer aktual ke pointer, jadi ada petunjuk ganda, dan itu adalah
topik teratas yang lebih maju.
Argumen variabel ke fungsi.
Ini disebut sebagai fungsi variatif.
Kami menggunakan fungsi printf yang memiliki sejumlah variabel
argumen, tetapi kami tidak mendefinisikan fungsi apa pun yang kami miliki dengan jumlah
argumen yang bervariasi, kami dapat mengeksplorasi konsep yang sangat berguna.
Tautan dinamis.
Ini adalah saat Anda membuka perpustakaan pada waktu dan itu sedikit berbeda dari
objek bersama.
Anda dapat membuka perpustakaan saat runtime dan itu meningkatkan kinerja dan itu
membuat Anda program yang dapat dieksekusi lebih kecil.
Jadi dlm open ada yg sebenarnya panggilan perpustakaan untuk melakukan ini.
Sinyal, garpu komunikasi antar proses.
Ini semua bisa dieksplorasi antar-proses komunikasi adalah ketika Anda memiliki dua program
yang ingin mereka komunikasikan.
Ada cara yang berbeda bahwa mereka dapat berkomunikasi.
Mereka dapat berkomunikasi melalui file.
Mereka dapat berkomunikasi melalui sesuatu yang disebut soket.
Mereka dapat berkomunikasi dengan menggunakan perpipaan.
Ada teknik yang berbeda keluar ada, tapi itu ketika dua proses ingin
berbicara satu sama lain.
Forking adalah tempat Anda bisa membuat proses lain.
Ada perpustakaan untuk dibuat proses lain dalam kode Anda.
Jika Anda ingin membuat yang lain proses dalam
kode Anda, itu akan memiliki ruang memori alamatnya sendiri dan itu dapat membuat program Anda
sedikit lebih efisien.
Dan kemudian memberi sinyal, kami tidak masuk banyak, tetapi sinyal digunakan untuk
debugging menjadi menghasilkan yang berbeda pesan ke program yang berbeda.
Threading dan konkurensi.
Topik lanjutan lainnya yang ingin Anda pelajari.
Ini memungkinkan banyak eksekusi poin di dalam program Anda.
Ini memungkinkan Anda menjalankan kode hampir bersamaan.
Jadi ini adalah jenis efisiensi.
Jika Anda memiliki tugas jangka panjang yang yang perlu Anda lakukan dalam program
Anda seperti memantau data atau menunggu data atau mungkin tugas Anda membaca file besar, Anda
dapat membuat yang lain utas untuk melakukan itu dan kemudian masih menjalankan
bagian lain dari program Anda bersamaan pada saat yang bersamaan.
Soket.
Soket digunakan untuk jaringan.
Soket akan digunakan jika Anda mau untuk terhubung ke komputer lain dan mendapatkan
data dari komputer lain itu.
Jaringan sangat sangat besar karena kami memiliki internet dan segala sesuatu yang lain.
Jadi Anda bisa mempelajari semua tentang soket dan lihat juga.
Ada dua fungsi disebut setjump dan longjump.
Itu untuk memulihkan keadaan.
Kita bisa mempelajarinya di detail yang lebih baik tentang manajemen
memori dan fragmentasi.
Ini bukan hanya tentang malloc, tapi ini adalah bagaimana Anda dapat mengatur memori Anda
dan meletakkannya di heap atau tumpukan.
Anda dapat memastikan bahwa program Anda sedikit lebih efisien, sehingga
Anda tidak memiliki banyak fragmentasi.
Fragmentasi adalah tempat Anda memiliki memori di lokasi yang berbeda, dan
itu tidak berurutan sehingga mungkin lebih sulit untuk mengambil lebih banyak waktu untuk mencari memori itu.
Anda dapat mengurangi fragmentasi.
Kami dapat bekerja untuk membuat program lebih portabel.
Secara umum, program c cukup portabel.
Tetapi ada lebih banyak teknik yang Anda dapat menggunakan untuk memastikan bahwa ketika Anda menulis program
Anda sekali, itu berjalan pada banyak sistem operasi yang berbeda dan Anda
tidak perlu menulis ulang.
Kami pada dasarnya bisa menggunakan beberapa standar posix yang
tersedia di c.
Kita bisa memastikan itu tergantung pada versi yang
berbeda dari standar c, bahwa mereka bekerja dalam berbagai standar dengan
menggunakan konvensi tertentu.
Kami juga dapat menulis program yang langsung berinteraksi dengan kernel.
Ingat, kernel adalah otak dari sistem operasi.
Kernel berisi semua driver.
Ini berisi semua jenis panggilan untuk menurunkan fungsi memori tingkat.
Itu banyak informasi yang berbeda.
Jadi kernel memiliki spesifikasi fungsionalitas di mana Anda dapat berinteraksi
dengannya di program c Anda.
Ini akan menjadi rendah hal-hal yang disematkan tingkat.
Jadi kita bisa menggunakan panggilan seperti kontrol IO.
Kami dapat membuat driver untuk berbicara dengan perangkat keras secara langsung.
Ada banyak lagi di kompiler dan flag berbeda yang
dapat Anda berikan ke kompiler atau linker, yang sekali lagi membuat program
Anda lebih efisien.
Kami tidak mendapat kesempatan untuk berbicara banyak
tentang banyak bendera yang berbeda.
Kami terutama berbicara tentang tanda hubung dinding dan beberapa yang dasar lainnya, tetapi
tidak ada yang lebih maju.
Kami berbicara tentang debugger dan cara men-debug aplikasi.
Debugger di blok kode adalah melalui antarmuka pengguna grafis.
Tapi keuntungan nyata dari seorang debugger ada di bawah tenda itu menggunakan gdb.
Gdb adalah debugger gnu.
Dan kami hanya berbicara tentang breakpoints dan menggunakannya melalui antarmuka pengguna grafis, tetapi Anda
bisa sebenarnya melakukan lebih banyak hal dengan gdb.
Kita bisa melalui debugger gdb dari konsol mengeluarkan perintah yang berbeda,
lakukan lebih banyak dengan file inti memahami cara membaca file
inti menggunakan gdb, a banyak topik lanjutan yang bagus di sana.
Alat profil dan penelusuran.
Kami tidak sempat membicarakan beberapa hal penganalisis statis, beberapa alat yang dapat menganalisis
kode Anda sebelum Anda jalankan program Anda untuk
melihat apakah ada kode yang mati atau ada praktik pemrograman yang buruk.
Dan kemudian menelusuri alat juga, s jejak, jejak d, profil g, itu semua adalah alat
penting yang Anda dapat gunakan untuk melihat untuk membantu Anda men-debug
dan membantu Anda mengukur efisiensi atau berapa banyak memori yang Anda gunakan
atau kinerja program Anda.
Ada memori tambahan lainnya alat debugging, seperti valgrind.
Ini membantu ketika Anda memiliki suka kondisi balapan atau Anda
memiliki masalah kerusakan memori.
Sering kali ketika Anda mengelola memori Anda dan Anda memiliki buffer overflows atau kebocoran memori,
itu sangat sangat sulit untuk menemukan mereka.
Jadi ada alat di luar sana yang bisa membantu Anda menemukan orang-orang seperti valgrind.
Jadi ada banyak perbedaan topik yang dapat Anda jelajahi
untuk menjadi ahli dalam c.
Kami menyentuh dasar-dasarnya.
Kami menyentuh benar-benar hal penting untuk memulai.
Tapi dengan tambahan ini topik, Anda bisa menjadi ahli.
Terima kasih.