Hatalar, hatalar, sorular - sayfa 2890

 
Roman :

Bu değerin bir hatasını yakalamanız gerekiyorsa, peki, 333 ile başlatın ))
Bu sadece başlangıç değeridir.

haklısın bu bir bug Her durumda başlatılmamış değişkenlerin atanması konusunda bir uyarı verdiğimiz veya daha sonra vermediğimiz, ancak varsayılan olarak sıfırla, örneğin tüm dil çerçevesinde başlattığımız ortaya çıktı. aynı vakalar.

 
Valeriy Yastremskiy :

haklısın bu bir bug Her durumda başlatılmamış değişkenlerin atanması konusunda bir uyarı verdiğimiz veya daha sonra vermediğimiz, ancak varsayılan olarak sıfırla, örneğin tüm dil çerçevesinde başlattığımız ortaya çıktı. aynı vakalar.

Sadece yukarıdaki örneklerde bu tür durumları nerede gördünüz?

 
A100 :

Sadece yukarıdaki örneklerde bu tür durumları nerede gördünüz?

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Hatalar, hatalar, sorular

A100 , 2020.10.27 16:11

Başlatmanız gerekir, ancak yalnızca anlamlı bir değerle. Bu örnekte, böyle bir değer yoktur, bu nedenle uygulama kötü değil, mümkün olan tek şeydir. Aksi takdirde çift başlatma olur

 int f( int i ) { /*вычисления*/ }
void g( int k )
{
         for ( int i = 0 , j ; i < k; i = j )
        {
                 j = f( i ) ;
                 /*вычисления*/
        }
}

 
Roman :

Ve başlatılmamış değişkenlerin atanması nerede? Hangi değişken başlatılmamış? ve kime atanır? Vurguladığınız şey: j'den = j='nin soluna ve =j'nin sağına değil, yani. bir değer atanmadan önce kimseye atanmaz

 
A100 :

Sadece yukarıdaki örneklerde bu tür durumları nerede gördünüz?

Evet, heyecanlandım, her durumda başlatılmamış bir değişkene atama vardır ve bunun tersi olmaz. Belki derleyici yukarıdan aşağıya satır satır gider ve sonra evet, atama en altta ve tam tersi en üsttedir. Aynı yerde, uyarı başlangıç olmayan bir değişkene atanabilir.

 
A100 :

Ve başlatılmamış değişkenlerin atanması nerede? Hangi değişken başlatılmamış? ve kime atanır? =j'yi değil, j='yi vurguladığınız gerçeği

Döngü gövdesinde başlatılmamış bir değişkene atama. İlk yinelemeden önce j henüz başlatılmadı.
İlk yineleme geçtikten sonra başlatılacaktır.
Önce döngü gövdesi, ardından artış alanı yürütülür. i = j ile değiştirdiğiniz

 
Roman :

İşlev gövdesinde başlatılmamış bir değişkene atama. İlk yinelemeden önce j henüz başlatılmadı.
İlk yineleme geçtikten sonra başlatılacaktır.
Önce işlevin gövdesi, ardından artış alanı yürütülür. i = j ile değiştirdiğiniz

Hayır, her şey doğru, ilk iterasyonda başka bir j başlamadı sadece j=f(i) ve ikincisinde sadece i=j olacak sanırım derleyici yukarıdan aşağıya ayrıştırıyor ve uyarı veriyor.

 
Valeriy Yastremskiy :

Hayır, her şey doğru, ilk iterasyonda başka bir j başlamadı sadece j=f(i) ve ikincisinde sadece i=j olacak sanırım derleyici yukarıdan aşağıya ayrıştırıyor ve uyarı veriyor.

Evet, ancak ilk yinelemeden önce j değişkeni henüz başlatılmadı ve derleyici buna yemin ediyor.

 
Valeriy Yastremskiy :

Evet, heyecanlandım, her durumda başlatılmamış bir değişkene atama vardır ve bunun tersi olmaz. Belki derleyici yukarıdan aşağıya satır satır gider ve sonra evet, atama en altta ve tam tersi en üsttedir. Aynı yerde, uyarı başlangıç olmayan bir değişkene atanabilir .

Belki de bu, derleyicinin nesnel olarak bilgiye sahip olmadığı zamandır:

 void f( int & i ) { /*вычисления*/ }
void OnStart ()
{
         int i;
        f( i );
         int j = i; // нормально ??? а если i не инициализирована?
         printf ( "%d" ,j);
}

onlar. belki f() i'nin bir başlatmasına sahipti, belki de değildi. Ve burada C++ derleyicisi bir uyarı veriyor, ancak nedense MQL bunu yapmıyor.

 
A100 :

Belki de bu, derleyicinin nesnel olarak bilgiye sahip olmadığı zamandır:

onlar. belki f() i'nin bir başlatmasına sahipti, belki de değildi. Ve burada C++ derleyicisi bir uyarı veriyor, MQL değil

Ne dediklerini bilmiyorum. Bence daha basit bir derleyici. Yukarıdan aşağıya düzen sözdizimini açık sözdizimine ayrıştırır. hatalar, türlere uyumsuzluk ve diğer olmayan değişkenlerin kullanımı. İkinci örnekte başlatma ayarlandığında hiçbir uyarı verilmedi. Programın yürütülmesi aynı olmasına rağmen.