dış ve giriş arasındaki fark - sayfa 2

 
Artyom Trishkin :

Girişle ilgili her şey açık. Extern hakkında - orada, bana gelince, önce projeye dahil edilen farklı dosyalarda aynı tür ve tanımlayıcıya sahip değişkenler bildirebilirsiniz ve sonra - onları bu şekilde bildiremeyeceğiniz ortaya çıktı. Burada, elbette, üç katlı izlenimcilik ...

extern'in anlamı, ana (ana) dosyada bir değişken varsa ve bu dosyaya başka bir dosya bağlıysa. Ve bu dahil edilen dosyada, ana dosyada bildirilen değişkeni kullanmanız gerekiyor, ardından dahil edilen dosyada onu extern olarak ilan ediyoruz. Sonuç olarak, dahil edilen dosya derlenebilir ve ana dosyayı derlediğinizde, dahil edilen dosyadaki değişken bildirimi yok sayılır.

 
Alexey Viktorov :

İyi bilmiyorum. Benim için tüm belgeler açıktır. Bir yerde zorluklar ortaya çıkarsa, bazı deneylerden sonra kaybolurlar.

Ancak bitsel işlemlere herhangi bir şekilde aşina değilsem, en azından makaleleri okuyun ... Onlardan hiçbir şey anlamayacağım. Bayraklar ve bayrak takımları hakkında olduğu gibi, Artyom bana sesiyle ne olduğunu açıklayana kadar hiçbir şey anlayamadım.

ondan değer talep edersen anlaşılır ama öncesinde ve sonrasında her şeyin nasıl işlediği karanlıktır, en karanlık karanlıktır.

 
Fast235 :

ondan değer talep edersen anlaşılır ama öncesinde ve sonrasında her şeyin nasıl işlediği karanlıktır, en karanlık karanlık

O kim?

 
Alexey Viktorov :

O kim?

işin özü

 
Alena Lysenkova :

orada:
1) extern yalnızca mql4'te çalışır.
2) girdiden sonraki yorumlar, girdi değişken adı yerine girdi parametrelerinde görüntülenecektir.
input int ma_period = 20;
- "ma_period" yazılacak
input int ma_period = 20; // MA dönemi
- "dönem MA" yazılacak
mql4'te tam olarak böyle olması için katı derleme modu #property strict gereklidir
extern ile böyle bir "hile" yoktur.
3) harici değişkenler, herhangi bir global değişken gibi kodda değiştirilebilir, giriş yapılamaz.

Başlangıçta sadece mql4 ve extern vardı, girdi yoktu. mql4'teki OOP gibi.
Sonra mql5 yaptılar, mql5 bir bütün olarak özellikle OOP'ye odaklandığından, hemen girdi yaptılar.
2-3 yıl önce mql4, giriş dahil olmak üzere mql5'ten birçok özellik eklenerek yükseltildi.

Ne terminalinden bahsediyorsun?

МТ5'te, göstergede harici bir değişken harici olarak bildirilirse, gösterge iCustom() aracılığıyla çağrılamayabilir.

 
Dmitry Fedoseev :

Ne terminalinden bahsediyorsun?

MT5'te, göstergede harici bir değişken harici olarak bildirilirse, gösterge iCustom() aracılığıyla çağrılmayabilir .

Şimdi sitem yok, ama "işe yaramayabilir" yazıyorsun... İşe yaramayabilir ama işe yarayabilir! Bu benim, özel eğitimi olmayan kendi kendini yetiştirmiş bir kişi olarak böyle bir belirsizliği anlamanın benim için zor olduğu gerçeğiyle ilgili ...

 
Alena Lysenkova :

orada:
1) extern yalnızca mql4'te çalışır.
2) girdiden sonraki yorumlar, girdi değişken adı yerine girdi parametrelerinde görüntülenecektir.
input int ma_period = 20;
- "ma_period" yazılacak
input int ma_period = 20; // MA dönemi
- "dönem MA" yazılacak
mql4'te tam olarak böyle olması için, katı derleme modu #özellik katı gereklidir
extern ile böyle bir "hile" yoktur.
3) harici değişkenler, herhangi bir global değişken gibi kodda değiştirilebilir, giriş yapılamaz.

Başlangıçta sadece mql4 ve extern vardı, girdi yoktu. mql4'teki OOP gibi.
Sonra mql5 yaptılar, mql5 bir bütün olarak özellikle OOP'ye odaklandığından, hemen girdi yaptılar.
2-3 yıl önce mql4, giriş dahil olmak üzere mql5'ten birçok özellik eklenerek yükseltildi.

extern hem orada hem de orada çalışır. Girişin yanı sıra - hem MQL5 hem de MQL4'te. Amaçları farklıdır ve bu sertifikada yazılıdır.

Neden bir kişiyi girdi ve dış değişkenlerin amacı hakkında yanlış bir fikre yönlendiriyorsunuz?

 
Dmitry Fedoseev :

extern'in anlamı, ana (ana) dosyada bir değişken varsa ve bu dosyaya başka bir dosya bağlıysa. Ve bu dahil edilen dosyada, ana dosyada bildirilen değişkeni kullanmanız gerekiyor, ardından dahil edilen dosyada onu extern olarak ilan ediyoruz. Sonuç olarak, dahil edilen dosya derlenebilir ve ana dosyayı derlediğinizde, dahil edilen dosyadaki değişken bildirimi yok sayılır.

Ayrıca bu değiştiricinin C ++ 'daki gibi çalıştığını düşündüm, yani. dahil edilen dosyada bildirildi https://www.mql5.com/ru/forum/160683/page867#comment_11927748

kontrol edildi, C++ 'da çalışması gerektiği gibi çalışmıyor


tstexter kitaplık dosyası

 //+------------------------------------------------------------------+
//| My function                                                      |
//+------------------------------------------------------------------+
extern int koef= 1 ;
 int MyCalculator( int value , int value2) export
   {
     return (( value +value2)*koef);
   }
//+------------------------------------------------------------------+

Komut dosyaları:

 #import "tstextern.ex5"
int MyCalculator( int value, int value2);
#import

extern int koef;

void OnStart ()
  {
      koef = 666;
      int res = MyCalculator( 100 , 200 );
       Print ( "result = " ,res);
   
  }
//+------------------------------------------------------------------+

koef değişkeni ile yapılan herhangi bir manipülasyon hiçbir şey yapmaz, hala yerel kapsamdadır (her dosyanın içinde)


Artyom Trishkin :

Amaçları farklıdır ve bu sertifikada yazılıdır.

fark, erişim kontrolünde yatmaktadır:

girmek için - sadece okunabilir, yazmak yasaktır

extern - hem okunabilir hem de yazılabilir ve MQL programı yeniden başlatıldıktan sonra bu değer harici ayarlarda belirtilen değere geri yüklenir

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2019.06.02
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Maksim Neimerik :

Şimdi sitem yok, ama "işe yaramayabilir" yazıyorsun... İşe yaramayabilir ama işe yarayabilir! Bu benim, özel eğitimi olmayan kendi kendini yetiştirmiş bir kişi olarak böyle bir belirsizliği anlamanın benim için zor olduğu gerçeğiyle ilgili ...

Şu anda kontrol etmedim anlamında. Ve bir zamanlar ne olduğu hakkında burada söylemek tehlikelidir, çünkü her şey sıklıkla değişir. Belki geçici bir arızaydı.

 
Igor Makanu :

Ayrıca bu değiştiricinin C ++ 'daki gibi çalıştığını düşündüm, yani. dahil edilen dosyada bildirildi https://www.mql5.com/ru/forum/160683/page867#comment_11927748

kontrol edildi, C++ 'da çalışması gerektiği gibi çalışmıyor


tstexter kitaplık dosyası

Komut dosyaları:

koef değişkeni ile yapılan herhangi bir manipülasyon hiçbir şey yapmaz, hala yerel kapsamdadır (her dosyanın içinde)

Evet, bir kitaplığınız var. Elbette farklı değişkenler olacaktır. Bu, mqh'yi içerme yoluyla bağlamak anlamına gelir.