Güçlü Yazma
C, zayıf yazılan bir dildir, yani derleyici farklı türlerdeki değişkenler arasında atama ve karşılaştırma gibi işlemlere izin verir. Örneğin, C bir değişkenin değerinin başka bir türe atanmasına izin verir. Aynı ifadede farklı türlerdeki değişkenlerin kullanılabilmesi hem esnekliği hem de verimliliği artırır.
Kesin olarak yazılan bir dil, farklı türlerdeki değişkenler arasında işlemler üzerinde kısıtlamalar uygular. Bu gibi durumlarda, derleyici işlemi yasaklayan bir hata döndürür. Veri türleriyle ilgili bu katı yönergeler olası hataları önlemek için tasarlanmıştır.
Uzaktan yordam çağrıları için C gibi zayıf türde bir dil kullanmanın zorluğu, dağıtılmış uygulamaların farklı C derleyicileri ve farklı mimarileri olan birkaç farklı bilgisayarda çalışabilmesidir. Bir uygulama yalnızca bir bilgisayarda çalıştığında, veriler tutarlı bir şekilde işlendiğinden iç veri biçimiyle ilgilenmeniz gerekmez. Ancak, dağıtılmış bir bilgi işlem ortamında, farklı bilgisayarlar temel veri türleri için farklı tanımlar kullanabilir. Örneğin, bazı bilgisayarlar int türünü tanımlar, bu nedenle iç gösterimi 16 bit olurken, diğer bilgisayarlar 32 bit kullanır. "Küçük endian" olarak bilinen bir bilgisayar mimarisi, verilerin en az önemli baytını en düşük bellek adresine, en önemli baytını da en yüksek adrese atar. "Büyük endian" olarak bilinen başka bir mimari, bu verilerle ilişkili en yüksek bellek adresine en az önemli bayt atar.
Uzak yordam çağrıları, parametre türleri üzerinde sıkı denetim gerektirir. AĞ üzerinden veri iletimini ve dönüştürmeyi işlemek için MIDL, ağ üzerinden aktarılan veriler için tür kısıtlamalarını kesinlikle uygular. Bu nedenle MIDL, iyi tanımlanmıştemel türleri kümesi içerir. MIDL, veri boyutunu ve türünü kesin olarak tanımlayan anahtar sözcüklerin kullanımını yöneterek güçlü yazma uygular. Güçlü yazmanın en görünür etkisi, MIDL'nin void *türündeki değişkenlere izin vermemesidir.
Aşağıdaki konularda, bu bölümde güçlü veri yazmayı zorunlu kılan MIDL dil özellikleri ele alınmaktadır:
- Temel Türleri
- İmzalı ve İmzasız Türler
- Wide-Character Türleri
- Yapıları
- Birleşimleri
- Numaralandırılmış Türler
- dizileri
- İşlev Özniteliklerini
- Alan Öznitelikleri
- Üç İşaretçi Türü
- Tür Öznitelikleri