Sabit ve statik, hem C hem de C ++ 'da ortogonal kavramlardır.
constAnahtar kelime herhangi ifadenin lvalue olarak görünmemesi değişkeni izin vermemek için derleyici söyler - aslında bu salt okunur hale.
C'de, staticanahtar kelimenin neye uygulandığına bağlı olarak birkaç kullanımı vardır. Bir işlevin değişkenine uygulandığında, değişkenin bir işlevin yerel kapsamında depolanmadığını, ancak işlevin çağrıları üzerinden erişilebilir olduğunu gösterir. Global bir değişkene veya işleve uygulandığında, yalnızca belirli bir dosya için erişilebilir hale gelir - başka bir deyişle, yalnızca derleme birimi içinde erişilebilir (bildirilmediği sürece extern).
C ++ 'da, staticanahtar kelime, her bir örneğe yerel olmak yerine sınıfın tüm örneklerinde paylaşılan bir değişken veya işlevler oluşturmak için bir sınıf tanımı içinde kullanılabilir . Ayrıca, C ++ 'daki bir statik sınıf işlevi, yalnızca o sınıfın (veya erişimi olduğu sınıfların) statik değişkenlerine erişebilir. Şimdi, C ++ ' constda, açıkça bildirilmedikçe üyelere derleme birimine dahili bağlantı sağlar extern- bu, sizin bahsettiğiniz şey olabilir. Bu, derleme zamanı sabitlerinin başlık dosyalarının kullanımıyla birim boyunca paylaşılmasına izin verir. Yine de, üyelerin gerçekten statik olmadığını unutmayın - daha ziyade sabit , başvurulduğu her konuma derlenir .