C'de bir bellek yöneticisi yazıyorum ve düzgün şekilde hizalandığından emin olmaya çalışıyorum (kullanıcı alanının 8 ile bölünebilen bir adreste başladığından emin olun ve tüm bloğun bölünebilir olduğundan emin olun. 8 de).Bitsel veya operatör | bellek bloklarını hizalamak için C içinde kullanım
merak ediyorum herkes bunu yapar söyle eğer: Bir arkadaş tarafından bana önerildi bir kod parçası var
x = ((x - 1) | 7) + 1;
ama ne dikey çubuk en/o ne yaptığını emin değilim işlevi bu senaryoda
Düzenleme: Bunu biraz daha açıklayabileceğimi fark ettim; x bir int, ve ben bir bitlik OR operatör olduğunu baktım, ama bu bağlamda ne anlama geldiğini anlamadım. Yardım için teşekkürler!
Stackoverflow, dil temellerini öğrenmek için en iyi yer değildir. Temel bir C eğitim veya kitabına danışın. Özel olarak questisn gelince, '|' [bitiwise VEYA operatörü] şeklindedir (https://en.wikipedia.org/wiki/Bitwise_operations_in_C). – kaylum
Neden arkadaşına sormadın? –
Bu yanlış görünüyor. En azından 'int' değerlerini kullanmak kötü bir fikirdir. Bu gerçekten "dil temelleri" ve nasıl doğru bellek hizalamak veya bunu yapmak için bir ifade anlamak için ifade yazmak olduğunu düşünmüyorum – Olaf