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
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.
Fiyat indirimi ve birden fazla dosya d...
SCSS başka bir sınıfı da dahil olmak ü...
Nasıl `klon` da dahil olmak üzere alt ...
git: geri yeni dosyalar da dahil olmak...
Dosyalar ve klasörler de dahil olmak ü...