Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Programcılara not:
Şimdi numaralandırmayı düzenlememiz gerekiyorsa, bir kez ve tek bir yerde düzenleme yapıyoruz. Yeni bir eleman eklememiz gerekiyor, örneğin element_new = 56, ekle
Ve get_enumqq_array() işlevini düzenleme konusunda endişelenmeyin. Tekniğin adı X Macro https://en.wikipedia.org/wiki/X_Macro. Geliştiricilerin isteği üzerine standart numaralandırmaları benzer şekilde bitirmek kolaydır.
Belki hemen belli değil, numaralandırma şöyle çıktı:
Harika! X Macro'yu bilmiyordum, teşekkürler! ENUM_QQ_HELPER tanımının sonunda virgül nedeniyle neden hata olmadığını koddan anlamıyorum. Bir numaralandırma veya dizi belirtirken son öğeden sonra virgül olmamalıdır. Ancak derleyici nedense buna yemin etmez.
Sınanmış
azarlamaz. Ve olması gerektiği gibi dizinin (enum) boyutu . Güzel! Bir hata gibi görünüyor, ancak böyle bir hata özelliğinin daha iyi olmasına izin verin. Doğrusu o rahat.
Görünüşe göre bu, özellikle her türlü "hile" için yasal bir ihlal. Endişelenme, C/C++'da da bir hata değil.
Not: başlatma konusundaki C ++ standardında:
braced-init-list:
{initializer-list , opt }
{ }
Onlar. ayraçlı başlangıç listesinin sonundaki virgül en üst düzeyde yasaldır.
Onlar. ayraçlı başlangıç listesinin sonundaki virgül en üst düzeyde yasaldır.
Programcılara not:
Peki ya yorumlardaki normal isimler?
Peki ya yorumlardaki normal isimler?
Peki ya yorumlardaki normal isimler?
Evet, yorum ekleyemiyorum. Numaralandırmaları yorumlamak için hatalı sözdizimi.
Hakkında bir konuşma olan bir enum örneği mümkün mü?
Evet, yorum ekleyemiyorum. Numaralandırmaları yorumlamak için hatalı sözdizimi.
/*...*/ içine alın.
enum E {
a = 1, --**-- Комментарий_1
b = 2 --**-- Комментарий_2
};
İşte öyle bir saçmalık ki, önişlemci yorumları yemek istemiyor (hem // hem de /*), makroları genişletirken onları görmeyi beklemiyor. Ya önişlemcinin kurallarını değiştirin ya da numaralandırmaları yorumlamak için alternatif bir yol tanıtın (yorum, komut dosyası ayarlarda çalıştırıldığında görüntülenecektir), şöyle:
enum E {
a = 1, --**-- Комментарий_1
b = 2 --**-- Комментарий_2
};
Önişlemci tarafından işleme birkaç aşamada gerçekleşir. Öncelikle tüm yorumlar kaynaktan kaldırılır ve bu sonuç işlenir. Ve önişlemcinin bir yorumla karşılaşmayı beklemediği yer burasıdır (makroları genişlettiğinde). Toplantı bir hata olarak kabul edilir. Örneğin burada:
İlk bakışta zararsız kod, bir yorum eklemelidir. Ama derlemeyecek.