SORU
24 ŞUBAT 2009, Salı


C başlık dosyalarının içinde kod

C ile benim kişisel stil her zaman sınıf bildirimleri koymak için bir dosya vardır, ve bir tanımları vardır .cpp, çok gibi Loki's answer to C Header Files, Code Separation Dosya öngörülmüştür. Kuşkusuz, bu yüzden seviyorum bu tarzı muhtemelen alakalı tüm yıl geçirdim kodlama Modula-2 ve Ada, hem de var olan buna benzer bir plan ile şartname dosya ve vücut dosyaları.

Tüm C tanımlamalar mümkünse, tanımları orada başlık dosyasında bulunması konusunda ısrar eden bir iş arkadaşı, ben daha C çok daha bilgili. Bu geçerli alternatif bir tarzı veya biraz daha iyi bir dövüş stili olduğunu söylüyor, ancak bunun yerine, bu herkes için C kullanarak, evrensel olarak kabul edilen yeni tarzıdır .

Eskisi kadar esnek değilim, bir kaç kişi daha var onunla görene kadar onun bu çoğunluğa üzerine kadar scrabble için çok endişeli değilim. Nasıl ortak bu gerçekten deyim vardır?

Cevaplar için bazı yapı kazandırmak için sadece: şimdiYoluçok yaygın, oldukça yaygın, nadir ya da hata-deli?

CEVAP
24 ŞUBAT 2009, Salı


İş arkadaşınız yanlış, yaygın yoldur ve her zaman kod koymak olmuştur .üstbilgi dosyaları (veya ne istersen) ve tanımlamalar cpp.

Bazen başlıktaki kod koyarak bazı hak vardır, bu daha akıllıca bir derleyici ile satır içi uygulaması izin verebilirsiniz. Ama aynı zamanda tüm kod derleyici tarafından bulunan her zaman işlenecek olan derlemek kez yok edebilir.

Son olarak, imkansız tüm kod başlıklarını olduğunda dairesel nesne ilişkileri (bazen istenen).

Alt satırda, sen haklıydın, yanılıyor.

DÜZENLEME:Sorunuzu düşünüyordum. Varbirsöyledikleri doğru ise. şablonlar. Birçok yeni "boost gibi kütüphaneler şablonları yoğun kullanımı ve sık sık" başlık. "" modern Ancak, bu sadece onlarla uğraşırken bunu yapmak için tek yol olduğu gibi şablonlar ile uğraşırken yapılmalıdır.

DÜZENLEME:Bazı insanlar biraz daha fazla açıklama, burada yazmaya olumsuzlukları üzerine bazı düşünceler "Başlığı sadece" kod: . ister

Etrafında arama, boost ile enfekte olan insanların çoğu kez azaltmak derlemek için bir yol bulmaya çalışıyorum. oldukça çok göreceksiniz. Örneğin: dahil boost ile 14'lerle tek 1K dosyası derleme görüşmüş How to reduce compilation times with Boost Asio,. 14'lerle olmayabilir "patlayan", ama kesinlikle bir sürü ekleyebilirsiniz normalden daha uzun oldukça hızlı bir şekilde. Büyük bir proje ile uğraşırken. Başlık sadece kütüphaneler zamanlarda oldukça ölçülebilir bir şekilde derlemek etkiler. Biz sadece destek çok yararlıdır çünkü tahammül.

Ayrıca, başlıklar (hatta artırmak için bağlantı gerekir kütüphaneleri konuları, dosya sistemi gibi bazı parçalar vardır, vs.) yapılması mümkün olmayan pek çok şey vardır. Birincil bir örnek, birden çok tanım hataları gibi başlık sadece libs bir tek o iğrenç şeyin çare olmadığı sürece) basit genel nesneler.

Başlık sadece bir örnek kodu olarak boost kullanırken son bir nokta olarak, büyük bir ayrıntı genellikle Gözden kaçar.

Boost Kütüphanesi, kullanıcı düzeyinde kod değil. sık sık değiştirmiyor. Eğer başlıklarını her şey koyarsanız kullanıcı kodu, her küçük değişiklik, tüm projeyi yeniden derleyin sebep olacaktır. O zaman (ve derleme derlemek için değişmez kütüphaneler için durum böyle değil) muazzam bir atık. Başlığı/kaynak ve daha iyi arasında işleri bölmek henüz içerir azaltmak için bildirimleri kullanın ileri, bir gün geçip eklendiğinde yeniden saatlerce kaydedebilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Harvest: Greg Laurie

    Harvest: Gre

    6 HAZİRAN 2006
  • Kim Barbin

    Kim Barbin

    3 Mayıs 2012
  • SRI International

    SRI Internat

    30 NİSAN 2008