Bir C kaynak da dahil olmak üzere başka bir dosya mı? | Netgez.com
SORU
24 EKÄ°M 2008, Cuma


Bir C kaynak da dahil olmak üzere başka bir dosya mı?

#include TAMAM (hatta tavsiye/iyi uygulama).c başka bir dosya .c dosya? Bir proje dosyası dahil olduklarında ne olur?

CEVAP
10 Temmuz 2009, Cuma


Doğru kullanıldığında, bu yararlı bir teknik olabilir.

Oldukça küçük bir ortak arayüz ve olmayan yeniden kullanılabilir uygulama kodu çok karmaşık, performans önemli bir alt sistemi olduğunu varsayalım. Kodu bir kaç bin satır, yüz kadar özel fonksiyonlar ve özel bayağı bir veri için çalışır. Eğer önemsiz olmayan gömülü sistemler ile çalışıyorsanız, muhtemelen bu durumla sık sık yeterince anlaşma.

Çözüm muhtemelen katmanlı, modüler ve ayrılmış olacak ve bu açıdan yararlı ve farklı dosyalarda alt parçaları farklı kodlama ile temsil takviye edilebilir.

C ile, bunu yaparak çok şey kaybedebilir. Neredeyse tüm toolchains tek bir derleme bir birim için iyi optimizasyonu sağlamak, ama hiçbir şey dışarıdan ilan hakkında çok kötümser.

Eğer bir C kaynak modüle her şey koyarsanız, sizin olsun

  • Performans ve kod geliÅŸtirmeleri - iÅŸlev çaÄŸrıları birçok durumda inlined olacak boyutu. Hatta satır içi uygulaması olmadan, derleyici daha verimli kod üretmek için fırsatlar vardır.

  • BaÄŸlantı veri ve fonksiyon gizleme düzeyde.

  • Ad kirliliÄŸi ve bunun doÄŸal bir sonucu olarak önlenmesi - daha az hantal adları kullanabilirsiniz.

  • Daha hızlı derleme ve BaÄŸlantı.

Ama aynı zamanda bu dosyayı düzenlemek için geldiğinde korkunç bir karmaşa ve zımni modüler kaybedersiniz. Bu çok sayıda dosyayı kaynak bölme ve bu tek bir derleme bir birim üretmek için dahil ederek aşılabilir.

Bu doğru olsa yönetmek için bazı kuralları empoze etmek gerekir. Bu bir ölçüde, ama bazı genel ipuçları - araç zinciri bağlıdır

  • Ayrı bir baÅŸlık dosyası içinde ortak arabirim - yine de bunu yapmaman gerekiyordu.

  • Bir ana var .c tüm yan içeren dosya .c dosyaları. Bu da ortak arabirim için kod içerebilir.

  • Derleyici korumaları özel bir baÅŸlık ve kaynak modülleri dış derleme birimler dahil deÄŸil emin olmak için kullanın.

  • Tüm özel veri ve fonksiyonlar statik beyan edilmelidir.

  • Arasında kavramsal fark korumak .c ve .h dosyaları. Bu, mevcut kuralları güçlendirir. Aradaki fark, senin baÅŸlıklarını statik bildirimleri bir sürü olacaktır.

  • EÄŸer araç zinciri için bir neden empoze deÄŸilse bile, adı özel uygulama olarak dosyaları .c ve .h. EÄŸer varsa korumaları vardır kullanırsanız, bu kod üretmek ve yeni bir isim (baÄŸlantı sırasında bazı boÅŸ kesimleri ile sona erebilir) tanıtacak. Büyük avantajı diÄŸer araçlar (örneÄŸin, IDE) bu dosyaları uygun ÅŸekilde tedavi edecek.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • hitcreatormusic2

    hitcreatormu

    21 Mayıs 2010
  • Jonathan Flavell

    Jonathan Fla

    1 HAZÄ°RAN 2006