Benzersiz Kılan (Ve Daha İyi) C Programlamanın Özellikleri

  • Edmund Richardson
  • 0
  • 1423
  • 4
reklâm

C programlama dili, tüm modern programlama dillerinin anasıdır. Muhtemelen Hiç Dinlemeyeceğiniz 10 Programlama Dilini Muhtemelen Hiç Duymadığınız 10 Programlama Dilinin Başı Mantık çeviren ve hala kalmayı başaran çok tuhaf ve tuhaf bir programlama dili var bir bilgisayarla iletişim bilimine sadık. Sen gidiyorsun… . Günümüzde kullanımda olan hemen hemen her dil, ilk olarak C dilinde ortaya çıkan birçok özelliği içermektedir. En küçük gömülü mikrobilgisayarlar için en büyük ana bilgisayarlara ve süper bilgisayarlara yazılım yazmak için yoğun bir şekilde kullanılmıştır..

C dilinde yazılan uygulamalar, sistem yazılımı, masaüstü yazılımı, kurumsal yazılım, veri tabanları, vb. Çok çeşitlidir. Bir programlama kariyerine başlamak için çok iyi iş çıkarırsınız. 10 Şu Anda Talep Edilen Bilgisayar Programlama İşleri Şu Anda 10 Bilgisayar Programlama İşi Şu Anda Talep Edin Bir programlama işi yapmak mevcut manzarada zor olabileceğinden, başarı şansınızı artırmak için aşağıdaki konsantrasyonlardan birine odaklanmayı düşünün. C temellerini bilerek.

C Kısa Tarihçesi

C dilinin gelişimi Unix ile çok yakından ilişkili. Daha sonraki yıllarda yapılan eklemelerle 1972'lerde geliştirildi..

C geliştirilmeden önce, Unix işletim sistemi, PDP-7 bilgisayarı için assembly dili kullanılarak geliştirilmiştir. Daha sonra yine assembly dili kullanılarak bu platformda C için bir derleyici oluşturulmuştur. Bu zamanda, C, Unix'in gelişimini kolaylaştırmak için tasarlandı. Bu derleyiciyi kullanarak Unix, PDP-11 bilgisayarı için tamamen C dilinde yeniden yazıldı. Ve yine, C dili derleyicisi C dilinde yeniden yazılmıştır (elbette ki mükemmel lex ve yacc araçlar), böylece C / Unix Bootstrapping işlemini tamamlayarak.

Unix'in C dilinde yeniden yazılmasının ana nedeni taşınabilirlikti. Farklı CPU mimarileri için montaj dilleri Fantastik AMD için Kısa Bir Kılavuz Threadripper CPU Fantastik AMD için Kısa Bir Kılavuz Threadripper CPU AMD birkaç yıl boyunca CPU'nun vahşi doğasındaydı, ancak büyük bir patlama ile geri döndü. AMD Threadripper, piyasadaki en güçlü tüketici işlemcilerinden biridir, ancak sizin için uygun mu? Unix işletim sisteminin her birine taşınması önemli bir çaba olurdu. Geliştirerek sistem dili C gibi ve Unix OS'yi C'ye yeniden yazarken, bu çaba birkaç büyüklükte azaltıldı..

Dil geliştirildikten sonra, sistem yazılımından çok daha fazla yazmak için kullanılabileceği kabul edildi. Ve böylece, C, dosya sunucuları, veritabanı sunucuları, ağ yığınları, masaüstü yazılımı (ve daha sonra) web sunucuları gibi yazılımlar yazmak için kullanılmaya başlandı. Web Sunucusuna Android Bir Cihaz Nasıl Döndürülür? Sunucu Pahalı bir hosting planı olmadan basit bir web sitesine ev sahipliği yapmak ister misiniz? İşte Android telefonunuzda veya tabletinizde bir web sitesine ev sahipliği yapmanın yolu. , vb.

1978'de Brian Kernighan ve Dennis Ritchie kitabı yayımladı C Programlama Dili. Bu kitap gayri resmi olarak görev yaptı C Dil Belirtimi 1989’a kadar C’nin ANSI tarafından resmi olarak standartlaştırıldığı yıllar boyunca. C'nin en son sürümü, 2011'de yayınlanan C11'dir..

Şimdi C'yi benzersiz kılan bazı özelliklerine bakalım..

C vs C ++: Onlar İlgili?

C'de daha karmaşık bir yazılım geliştirildiğinden, kapsülleme, polimorfizm vb. Gibi nesne yönelimli kavramların karmaşıklığı yönetmeye yardımcı olacağı kabul edildi. Bu, C ++ 'nın C'nin bir süperset olarak gelişmesine yol açar.

C ++, nesne yönelimli yazılım yazmak için bazı özellikler ekleyerek ve C ile uyumluluğu koruyarak geliştirilmiştir. ilerici gelişme - C dilinde uyumlu değişiklikler yaparak C ve C ++ modülleri aynı programda birleştirilebilir ve aynı derleyici ile derlenebilir. Bu, daha eski C tabanlı modüllerin, nesne yönelimli konseptler kullanılarak yazılmış daha büyük bir programda minimum değişikliklerle yeniden kullanılmasını sağladı..

Bir C programı teoride herhangi bir değişiklik gerektirmeden bir C ++ derleyicisi tarafından derlenebilir. Bununla birlikte, pratikte C ++ tarafından uygulanan daha katı tip denetimi, kodda bazı değişiklikler gerektiren hatalarla sonuçlanır.

Az sayıda Anahtar Kelime

C dili, gücüne rağmen küçük bir dil olmuştur. Bunun nedeni, yalnızca 32 kelimeyi belirli bir anlamı olan anahtar kelimeler olarak bildirmesidir. Buna karşılık, C ++, 82 anahtar kelimeyi, java'nın 50 ayrılmış anahtar kelimesini ve javascript'in 63 olduğunu belirtir. Çok fazla sayıda anahtar kelimeyi hatırlamak ve bunlardan kaçınmak zorunda olmanın baş ağrısını hayal edin!

Açık Dize Türü Yok

Diğer birçok modern dilden farklı olarak, bir Android Uygulaması Oluşturmak İçin, Bu 7 Programlama Dilini Öğrenmeniz Gerekiyor Bir Android Uygulaması Oluşturmak için, Bu 7 Programlama Dilini Öğrenmeniz Gerekiyor? Programlama geçmişinize ve hangi dilleri kullanmaktan daha rahat hissettiğinize bağlı olarak gelir. Neyse ki, seçeneklerin var. Java, C ++ ve JavaScript gibi, C dizeleri için ayrı bir tür sağlamaz. Dize, bir karakterle sonlandırılmış bir karakter dizisi olarak kabul edilir. 0 karakter (belirtilmiştir “\ 0”). Dizginin uzunluğu bir kural ile belirtilir: 0 karakter. Bunu görmezden gelmek ve saymak veya depolamak için ücretsiz “\ 0”. Uygun bir dize türü ve konvansiyon eksikliği bu, yıllarca bilinen sayısız hataya neden oldu. tampon taşması.

Aslında, internete ilk saldıran solucan, Morris İnternet Solucanı, çok önemli bir sistem yazılımı parçası olarak bilinen bir böceğin sonucudur. parmak daemon.

İşte böyle bir hata örneği. Bu tür hataları bir programa dahil etmenin ne kadar kolay olduğunu göstermektedir. Program iyi derleniyor, ancak arabellek taşması nedeniyle çöküyor.

# main (dahil) char * buf = "merhaba dünya"; buf [12] = 'a'; printf ("% s \ n", buf);  

Buna karşılık, çoğu modern dil, bu tür şeytanları imkansız kılan açık bir dize türü sağlar. Yukarıdaki kodu iyi derleyen C ++ bile açık bir şekilde sağlar std :: string tip.

İşaretçi Manipülasyonu

Bir işaretçi, bir hafıza konumuna referanstır. Keyfi bellek konumlarını okumak ve yazmak söz konusu olduğunda C tamamen esnektir. Bu esneklik büyük bir maliyete sahiptir ve yazılım yelpazesinde birçok hataya neden olmuştur. En dikkat çeken ve tüm interneti etkileyen web sunucuları, posta sunucuları ve ftp sunucularındaki bu hataları içerir. Bugün bile, zaman zaman geçersiz bellek konumlarına referans verme ve güncelleme nedeniyle oluşan hatalarla ilgili haberler bulunmaktadır..

Rezil SSL HeartBleed 2014 yılında tespit edilen güvenlik hatası, işaretçi konumlarının yanlış yönetilmesinin sonucuydu ve C de uygun işaretçi yönetiminin çok önemli olduğunu gösteriyor.

Ara sıra BSOD bile (“ölümün mavi ekranı”Windows sistemlerinde görülen hataları) muhtemelen yanlış işaretçi işleme neden.

C ++ dışındaki diller işaretçi manipülasyonuna izin vermez ve bu nedenle bu hata sınıflarına karşı savunmasız değildir.

Diziler ve İşaretçiler Değiştirilebilir

C dizisinde referanslar ve işaretçiler birbiriyle değiştirilebilir. Dil dizi başvurusunun kullanımına izin verir Java ArrayList Nasıl Kullanılır Java ArrayList Nasıl Kullanılır Java arraylist genel amaçlı bir yeniden boyutlandırılabilir dizidir. Genellikle diğer dillerde dizilerden beklenen tesislerin çoğunu sağlar. Bu yazıda bir arraylist kurmayı ve kullanmayı öğreneceksiniz. bir işaretçi gerekliyse ve bunun tersi de geçerlidir. Bu, güçlü manipülasyona izin verirken, birçok rezil hataya da neden oldu..

Geniş kullanımı “tanımlamak” Makrolar

Makrolar, farklı bir genişlemenin adını değiştirmek için kullanılır. Derleme zamanında bir adın tanımını değiştirmek veya basit bir ad için daha uzun bir genişletme yapmak için kullanılabilirler. C makro sistemi destekler ifdef koşullu derlemeye izin veren koşullamalar. Bu, yazılımın farklı mimarilere ve işletim sistemlerine taşınmasının bir yoludur. Genel adlar derleme zamanında farklı koşullar için farklı açılımlarla tanımlanmış ve değiştirilmiştir.

Ayrıca, tüm makro bölümlerini bu makroları kullanarak derlemek de dahil etmek veya ortadan kaldırmak da mümkündür. Makroların Kaydedilmesi Sinaps İle Kolay Bir Razer Keyboard mu Var? Makroların Kaydedilmesi Sinaps İle Kolaydır Razer çevre birimleri kullanıyorsanız ancak Synapse yazılımının avantajlarından yararlanmıyorsanız, kaçırıyorsunuz. Makroları nasıl etkili bir şekilde kullanacağınızı ve oyununuzu nasıl daha fazla güçlendirebileceklerini öğrenin. .

Bunlar kullanımdan kaldırıldı, ancak C ++ ile kullanılabilirler. Java, JavaScript, python, vb. Gibi diğer diller benzer bir imkan sağlamaz.

Dosyalarda Kapsanan Modüller

C, bir sınıf kavramına sahip değildir ve bu nedenle kamusal, özel ve korumalı görünürlük kavramını desteklememektedir. C tarafından sağlanan tek kapsülleme dosyalara aittir. Bir kaynak dosyada tanımlanan fonksiyonlar, global değişkenler ve tipler sadece isimler verilmediği sürece bu dosya içinde görünür. Anahtar kelimeler statik ve gündüzlü öğrenci değişken ve fonksiyon adlarının görünürlüğünü kontrol etmek amacıyla sağlanmıştır.

Buna karşılık, C ++, Java ve Python gibi diğer diller genellikle sınıfları ve sınıflarla birlikte gelen kapsüllemeyi destekler..

Dış kütüphaneler

Temel dil yapıları dışında, C'deki daha karmaşık işlevler dış kütüphanelere verilir. Dize manipülasyonu, matematik, giriş-çıkış, ağ vb. Hepsi dış kütüphaneler tarafından sağlanmaktadır. Buna karşılık, diğer diller genellikle dilin kendisinin de bulunduğu iyi stoklanmış bir modül kütüphanesiyle birlikte gelir..

Ve bu, C dilinin bazı temel özelliklerini, özellikle de onu diğer dillerden ayıran özellikleri kapsar..

C ile çalıştın mı? Beğendin mi yoksa başka bir dilde çalışmayı mı tercih ederdin? Lütfen aşağıdaki yorumlarda açıklayınız.




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.