uzmanlar için soru #define - sayfa 3

 
Alexandr Andreev :


Herkes anlıyor gibi...

Yani bu, yolculuğuna yeni başlayanlar için ....

Yine de bir stat sınıfına sarabilir ve ardından geri kalanları eşitleyen bir bağlantı döndürebilirsiniz. if (a!=5) Print(a); ile çalışırken bu yöntemin bir eksisi vardır; bu işe yaramaz, if (a!=5) {Print(a);} yazmalısın, derslerde bu anı düzeltebilirsin ama tembellik)) ama genel olarak her şey tarih arşivlerinde görünüyor

sınıflarda verilerimizi statik bir yöntemle başlatıyoruz ve print'imizin çağrısını bir operatörle birleştiriyoruz .... o zaman if (a!=5) Print(a); , çalışacak

Hepsi tembellikten. Sürüklendi ama gol oldu. Bir şeyi azalttı, ancak makul bir ölçüde. Ayrıca yazdırır, bir dosyaya yazar ya da veri toplar ya da bir algoritma çalıştırır, kurar. Baskıya önceden tanımlanmış dizeleri koyarsanız, virgüller yazdırılacaktır. Genel olarak bu beyin elbette antrenman yapıyor ama yol bile görünmüyor.

 
Alexandr Andreev :



Dmitry Fedoseev :


Vladimir Simakov :


Durum böyle olduğundan, bir soru sorabilirsiniz. Tanımlamanın derleyici için bir işlev çağırmadan ne kadar farklı olduğu. Hiçbir şey olmadığı sonucuna vardı. Yanlış mıyım?

 
Valeriy Yastremskiy :

Durum böyle olduğundan, bir soru sorabilirsiniz. Tanımlamanın derleyici içinbir işlev çağırmadan ne kadar farklı olduğu. Hiçbir şey olmadığı sonucuna varıldı. Yanlış mıyım?

Tanımla - derlemeden ÖNCE sırasında ikame, böylece her türlü __LINE__ tam olarak olması gerektiği gibi olur, daha düşük bir kod parçacığını değiştirebilirsiniz

Bir işlev, birçok dilde koda bir bağlantıdır (goto) ve diğerlerinde yürütülebilir bir dosyanın oluşturulması sırasında kod değiştirme (tüm işlevleri genişletme).

Eh, ve daha fazla defany sözde kötüdür, çünkü. hata aramayı zorlaştırır, bu nedenle orada olmadığında iyi bir tanımlama
 
Alexandr Andreev :

Tanımla - derlemeden ÖNCE sırasında ikame, böylece her türlü __LINE__ tam olarak olması gerektiği gibi olur, daha düşük bir kod parçacığını değiştirebilirsiniz

Bir işlev, birçok dilde koda bir bağlantıdır (goto) ve diğerlerinde yürütülebilir bir dosyanın oluşturulması sırasında kod değiştirme (tüm işlevleri genişletme).

MKL hakkında soru. Döngüler dışında yürütülebilir dosyada goto olmadığını doğru anlıyorum. Soru, derleme özelliklerinden kaynaklandı. Kesinlikle yukarıdan aşağıya. Ve döngü gövdesinin altında bir değişken bildirirseniz ve onu döngü koşullarında çağırırsanız, bir uyarı olacaktır. Yukarıdan aşağıya çıktı kontrolü. Yürütülebilir dosya, git bağlantılarıyla değil, bir tanımlama gibi işlev ikamesiyle oluşturulur.

 
Alexandr Andreev :

Tanımla - derlemeden ÖNCE sırasında ikame, böylece her türlü __LINE__ tam olarak olması gerektiği gibi olur, daha düşük bir kod parçacığını değiştirebilirsiniz

Bir işlev, birçok dilde koda bir bağlantıdır (goto) ve diğerlerinde yürütülebilir bir dosyanın oluşturulması sırasında kod değiştirme (tüm işlevleri genişletme).

Yani, ikame yalnızca derleme sırasında derleme hızını etkiler mi?
Ve sadece büyük projelerin montajı için rasyonel mi?
Veya aynı zadefaynenyy kodunun tümü yürütülebilir dosyada daha hızlı mı olacak?

 
Valeriy Yastremskiy :

MKL hakkında soru. Döngüler dışında yürütülebilir dosyada goto olmadığını doğru anlıyorum. Soru, derleme özelliklerinden kaynaklandı. Kesinlikle yukarıdan aşağıya. Ve döngü gövdesinin altında bir değişken bildirirseniz ve onu döngü koşullarında çağırırsanız, bir uyarı olacaktır. Yukarıdan aşağıya çıktı kontrolü. Yürütülebilir dosya, git bağlantılarıyla değil, bir tanımlama gibi işlev ikamesiyle oluşturulur.

Hayır, 2008'de µl kesinlikle koda atıfta bulunma yolunu kullandı.

Tam genişlemenin şimdi kullanılıp kullanılmadığı burada net değil.

Şimdi kendi derleyicinizi yazmak, herhangi bir bilgisayar bilimi fakültesinin 3-4 dersidir,

Ve orada her şey kafa karıştırıcı, bir yerlerde bağlantılar var, genel olarak açıklama, kim yazmak isterse.

Büyük olasılıkla mümkün olanı dağıtırlar, ancak her şeyi değil. Gibi ifadelerin olduğu açıktır. bu tamamen farklı bir hikaye.

 
Roman :

Yani, ikame yalnızca derleme sırasında derleme hızını etkiler mi?
Ve sadece büyük projeler inşa etmek mantıklı mı?
Veya aynı zadefaynenyy kodunun tümü yürütülebilir dosyada daha hızlı mı olacak?

Normal işlevleri dağıtmak elbette bir meseledir

onlar. (int i=0; i<ArraiSize(max); i++) için

burada ArraySize(maks); açılır ve orada bu dizinin boyutu için bir adres gibi bir şey ortaya çıkar (diziye bakarsanız, boyutu değişkendedir ve burada bu değişken için "bellekteki adres" ikamesi gerçekleşir) yani. genel olarak, onu bir değişkene dönüştürmenin bir anlamı yoktur.

  (int i=0; i<ArraiSize(max); i++) için

ve

için (int i=0; i<boyut; i++)  

Bu durumda, ArraySize(max) ve size , dizinin boyutunu belirlemek için aynı zamanlamalara sahiptir.

 
Alexandr Andreev :

Hayır, 2008'de µl kesinlikle koda atıfta bulunma yolunu kullandı.

Tam genişlemenin şimdi kullanılıp kullanılmadığı burada net değil.

Şimdi kendi derleyicinizi yazmak, herhangi bir bilgisayar bilimi fakültesinin 3-4 dersidir,

Ve orada her şey kafa karıştırıcı, bir yerlerde bağlantılar var, genel olarak açıklama, kim yazmak isterse.

Büyük olasılıkla mümkün olanı dağıtıyorlar, ama her şeyi değil. Gibi ifadelerin olduğu açıktır. bu tamamen farklı bir hikaye.

Teşekkür ederim. Hiç bitmeyen Hatalar ve Hatalar konusuna bakılırsa, optimizasyon bizim her şeyimiz .... iyi, ışığa giden kötülük gibi))) araba hareket ediyorsa sonsuz onarım da yol)

 
Roman :

Yani, ikame yalnızca derleme sırasında derleme hızını etkiler mi?
Ve sadece büyük projeler inşa etmek mantıklı mı?
Veya aynı zadefaynenyy kodunun tümü yürütülebilir dosyada daha hızlı mı olacak?

1 - muhtemelen evet, ancak mikrosaniye için =)

2 - tam tersi - en kısa tanımları ve minimumları kullanmanız gerekir

3 - 2008'de bu ifade µl4 için doğru olacaktır. Ama şimdi hız aynı olacak

 
Alexandr Andreev :

Normal işlevleri dağıtmak elbette bir meseledir

onlar. (int i=0; i<ArraiSize(max); i++) için

burada ArraySize(maks); açılır ve orada bu dizinin boyutu için bir adres gibi bir şey ortaya çıkar (diziye bakarsanız, boyutu değişkendedir ve burada bu değişken için "bellekteki adres" ikamesi gerçekleşir) yani. genel olarak, onu bir değişkene dönüştürmenin bir anlamı yoktur.

  (int i=0; i<ArraiSize(max); i++) için

ve

için (int i=0; i<boyut; i++)  

Bu durumda, ArraySize(max) ve size, dizinin boyutunu belirlemek için aynı zamanlamalara sahiptir.

Bu döngü örneğinde, muhtemelen zamanlamalar konusunda aynı fikirde değilim.
Aksine, sonucu boyut değişkenine almak ve onu koşulda kullanmak tavsiye edilir.
ArraySize(max) için her yinelemedeki döngü, gereksiz açma işlemini gerçekleştirerek döngüyü yavaşlatacaktır.
Yani, montaj kodundaki ek talimatlar.