Sabit İşaretçiler ve Hizalama
Salt okunur erişimi ve yerleşimi ifade edin.
Sabit İşaretçiler ve Hizalama, CoddyKit'te ücretsiz bir Zig Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Zig Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Zig Academy kursu toplamda 4 dersten oluşur.
Salt Okunur Erişim
Çoğu zaman bir değeri paylaşmak, ancak onu değiştirmeyeceğinizi garanti etmek istersiniz. const işaretçisi, yazmayı engellerken okuma erişimi sağlar.
*const T Türü
Değiştirilemez verilere işaret eden bir işaretçiyi *const T şeklinde yazın. Üzerinden okuyabilirsiniz; ancak hedefe atama yapmak derleme hatasıdır.
const x: i32 = 5;
const p: *const i32 = &x;const, & ile Birlikte Taşınır
Bir const değerinin adresini almak otomatik olarak *const T üretir; böylece değişmezlik tür tarafından korunur.
const v: u8 = 9;
const p = &v; // *const u8Değiştirilebilir Tür const'a Dönüşebilir
*T, *const T'ye serbestçe dönüşebilir; çünkü yazma iznini kaldırmak her zaman güvenlidir. Tersi dönüşüme izin verilmez.
var n: i32 = 1;
const ro: *const i32 = &n;const Neden Tercih Edilir
*const T türünde parametre kabul etmek, çağıranlara yalnızca okuma yapacağınızı bildirir ve işlevlere güvenmeyi kolaylaştırır.
fn show(p: *const i32) void {
// read only
}Hizalama Ne Anlama Gelir
Her türün bir hizalaması vardır: üzerinde bulunması gereken adres sınırı. Bir u32 genellikle dörde bölünebilen bir adres gerektirir.
@alignOf ile Sorgulama
Yerleşik @alignOf(T), tıpkı @sizeOf'un boyutu döndürmesi gibi, bir türün bayt cinsinden gerekli hizalamasını döndürür.
const a = @alignOf(u32);Türde Hizalama
Belirli bir sınır talep etmek için işaretçinin hizalamasını türünde align kullanarak, örneğin *align(4) u8 şeklinde belirtebilirsiniz.
var p: *align(4) u8 = undefined;Hizalama Neden Önemlidir
Donanım, hizalanmış verileri daha hızlı okur ve bazı işlemciler hizalanmamış erişimde hata verir. Zig, bunu doğru tutmak için hizalamayı türde takip eder.
Fazla ve Eksik Hizalama
Bir işaretçi varsayılandan daha güçlü bir hizalamayı garanti edebilir; ancak @alignCast gibi açık bir dönüştürme olmadan hizalamayı zayıflatamazsınız.
const ve align Birlikte
İkisi doğal biçimde birleştirilebilir: *const align(8) T, aynı zamanda sekiz baytlık bir sınırı garanti eden salt okunur bir işaretçidir.
Kısa Kontrol
Bir işaretçinin arkasındaki değeri yalnızca okuyan bir işlev yazıyorsunuz. Bunu en iyi ifade eden parametre türü hangisidir?
Özet
*const T işaretçisi verileri salt okunur olarak paylaşır ve *T'den dönüşebilir; @alignOf ve align(n) ile görülen hizalama ise bellek erişimini doğru ve hızlı tutar. 🎯
Sıkça Sorulan Sorular
“Sabit İşaretçiler ve Hizalama” dersi ücretsiz mi?
Evet — “Sabit İşaretçiler ve Hizalama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Zig Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Zig Academy kursu toplamda 4 dersten oluşur.
“Sabit İşaretçiler ve Hizalama” dersinde ne öğreneceğim?
Salt okunur erişimi ve yerleşimi ifade edin. Zig Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Zig Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Zig Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Sabit İşaretçiler ve Hizalama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Zig Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Zig Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- *T ile Tek Ögeli İşaretçiler
- ptr.* ile Başvuruyu Kaldırma
- [*]T ile Çok Ögeli İşaretçiler
- Sabit İşaretçiler ve Hizalama