Hatalar, hatalar, sorular - sayfa 2503
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Peki, bug nedir?
her biri iki bayt olan bir dizi mz iki öğe bildirirsiniz ve olması gerektiği gibi 4 bayt alırsınız. Hata nerede? Neyin içinde?
Ama bu
4 hizalıdır ve 2 eleman 2*8 bayt alacaktır.
Kusura bakmayın ama bunu yazarsanız konuyu anlamamış olursunuz.
Haçlarda analog:
Belki de hata burada değildir?
Kusura bakmayın ama bunu yazarsanız konuyu anlamamış olursunuz.
Hayır, anlamıyor gibisin.
Hayır, anlamıyor gibisin.
Küçük-yumuşak olanlardan #pragma paketi çok tuhaf bir şey (dürüst olmak gerekirse, çalışma prensibi şimdi beni şaşırttı). Şaşırtıcı olmayan bir şekilde, artık standartta olan alignas farklı çalışıyor.
İşte bir tane daha:
Küçük-yumuşak olanlardan #pragma paketi çok tuhaf bir şey (dürüst olmak gerekirse, çalışma prensibi şimdi beni şaşırttı). Şaşırtıcı olmayan bir şekilde, artık standartta olan alignas farklı çalışıyor.
evet iyi zaten)
#pragma paketi gcc'de de harika çalışıyor, ancak yazdıklarınız hizalamadan farklı çalışan dahili bir gcc özelliğinden ibaret.
evet iyi zaten)
#pragma paketi gcc'de de harika çalışıyor, ancak yazdıklarınız yalnızca hizalamadan farklı çalışan dahili bir gcc özelliği.
Peki bu örnek neyi gösteriyor? Hizalama kullanarak neyi anlamadın? Derleyici bile koda yemin ediyor:
#pragma paketi, gcc'nin yalnızca uyumluluk için desteklediği yumuşak paketlerin tuhaf bir hilesidir.
Peki bu örnek neyi gösteriyor? Hizalama kullanarak neyi anlamadın?
katılıyorum, sıkışmış
işte doğru kod
alignas'ın paketlemeye benzemediği anlamına gelir.
çünkü aynı gcc'de (böylece küçük-yumuşak olanlar olmadan) varsayılan paketleme oranı 8'dir.
çünkü:
ve burada alignas(8) ile
Ve bu varsayılan davranışı not edin ve küçük yazılımlarla uyumluluk için değil
Fikir girmedi. Örnekte her şey yolunda, herhangi bir sorun görmüyorum. Varsayılan - yapı hizalaması == üyeler arasında en katı hizalama gereksinimini alın.
struct {char;} == 1, struct {char;} kısa} == 2, struct {char; int} == 4, vb. Her yerde aynıdır. Ve uzun uzun == sekiz, yani hizalamaların bir etkisi yoktur.
Fikir girmedi. Örnekte her şey yolunda, herhangi bir sorun görmüyorum.
Evet haklısın örnek gösterge değildir.
Sonuç olarak, mql paketinin alignas gibi değil #pragma paketi gibi çalıştığı ortaya çıktı.