Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

WARNING Mİ ! ERROR MU !

Başlatan F493, 14 Aralık 2007, 15:28:59

F493

WARNING Mİ ERROR MU  YAZIYI OKUYUNCA CEVAPLAYIN DERİM
derleyicinin verdigi mesajlarla ilgili birşeyler söylemek istiyorum

burada yazılımda ençok yanıldıgımız ve atladıgımız bir konu oldugunu düşünüyorum..

 şöyleki;  bir kod yazdınız 10 adet dosyadan oluşuyor,ve her dosya 600satır..

ve bir hata var yanlış çalışmakta ,işte şimdi ben burada bu hatanın error olması için dua ederdim,nedeni ise,, Error demek tespit edilmiş , ve problemin yeri yurdu belli demek..

 peki kod yanlış  çalışıyor ,ama  hata da yok  :(

neyse warning yok(bazı derleyiciler bazı durumlarda mantıksal hatalar için warning vermezler) bu felaket olabilir.

çünkü mantıksal hata ,tespit edilmesi kangrene dönüşebilir,saç baş yoldurabilir..
neyseki günler sonra hatayı bulduk ,,neymiş bakalım bu hata
 
   7modül 400.satır(sallıyorum)
                 while(y=MAX_RANGE) (((while(y==MAX_RANGE)dogrusu böyle olmalıydı..


 işte cinayet ,burada karşılaştırma yerine yanlışlıkla atama yapılıyor ve bu  satır herzaman dogru olacagı için buarası herzaman çalışır...

BİRDE bu durumda warning veren bir derleyici yani mantılsal hatayıda yakalayan bir derleyici,,
 derledik  ve kod istendigi gibi çalışmadı..  
 bidakka bir Warning var kösede buda neyin nesi..
 
dedik ve
       gitti muhtemelen yanlış atama  dedi;
ve   while(y=MAX_RANGE)   bunu buldu.

 işte warning böyle bişey ,her derleyici syntax cignendigi zaman ERROR verir ,ancak her derleyici mantıksal hataları yakalıyamaz..

 işte WARNING böle bişey :D

birde c de kod yazan arkadaşlara bir noktayı belirtmek isterim
bilirsiniz c de atama yapılırken sol taraf degeri nesne olmak zorunda.

while(A == 20) şimdi buarada karşılatırma yapılıyor yanlış yaptık ve

while(A = 20) yaptık işte buarada bu kod herzaman çalışır şarttan bagımsız olarak..
 digerinin  yerine while(20 == A) yaparsanız  ne olur
yine kod geçerli peki while(20 = A ) işte buarada eger yanlışlıkla karşılaştırma yerine atama yaparsanız HATA(ERROR) verir derleyici

çünkü sol taraf degeri bir sabit ,nesne değil ,atama yapılamaz ..eeeeee zaten ben atama yapmak istememiştim negüzel  bak mantık hatasını bide her derleyicinin tespit edemedigi mantık hatasını
ufak bir kod yazım teknigiyle ERROR' bide SYNTAX hatasına çevirdim işte bu hatayı bulamayacak bir derleyici yok çünkü dilin kuaralı.

 şimdi benim cevabın bir tercih olsun,,derleyicinizin ayarlarından eger kod yazmakta pro değilseniz tüm warning leri ERROR olarak degiştirin yani eger kodda bir warrning varsa onlarıda error gösetersin sonra eski konumuna alırsınız..DERİM ben..

iyi çalışmalar.. :D

DumrulBey

Derleyicilerin = ile == arasındaki farkı algılama hassasiyetini vurguladığını için teşekkürler...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

arslan74

Merhaba,

Alıntı Yap
while(A == 20)

yerine

while(20 == A)

Bu yöntemi bir cok programcı kullaniyor. Özellikle bir proje birden cok kişi çalışıyorsa bu yöntemi tercih ediyorar. Hattanın hangi modulden kaynaklandığını bulmak için. Buna benzer daha bir cok yöntemler var.

Mesela en basidinden değer 255 altında olan bir int sayısını char değişkenine atanır. Ama derleyici bu durumda size uyarı mesajı verir. Bizde bu konuya pek kulak asmasınız, bu değeri char türünden bir  değişken tutabilir. Ama işin doğru bizim bu işlemi bilerek yaptığımızı derleyiciye bildirmemiz gerek. Bunu için de caste yöntemi yapılır.

int i = 124;
char c;

c = i;   //  burada uyarı verir.


Ama

int i = 124;
char c;

c = (char)i;   //  burada uyarı vermez.



Cünkü derleyici int i char atamadan önce onu char değişkenine dönüştürür.

Kod yazarken, sıfır Error ve warning mesajı almanız lazım. Bir cok programcı warningl'eri göz ardı ediyor. O yüzden program belli bir noktadan sonra kopuyor. Derleyicinin verdiği bütün uyarı mesjına dikkat edin.


Ayrıca Bu konu C derleyicisine ait bir konu. Proteus başlığı altında alakasız bir konu olmuş.


Selamlar

F493

Ayrıca Bu konu C derleyicisine ait bir konu. Proteus başlığı altında alakasız bir konu olmuş.


demişsiniz anlayamadım,

Dediginiz gibi bir sürü yöntem var,bu konuda ,hele birde dil c ise ayrıntı muazzam tabii.

      Sitedeki yorumlarınızı inceledim,şunu söyleyebilirim,tarzınızdan da anladıgım kadarıyla,(umarım reklam yapmıyorundur)

cdernek te Necati hocadan C egitimi almışsınız..Bende ondan egitim almış biri olarak tarzınızı  yakın buluyorum,,
     Aslında bu konuda ufak ufak harekete geçmek lazım,yani bu tür makale tarzı konulara deginmek lazım ,ben fırsatım oldukça bu konular hakkında genel konulara deginmek istiyorum.

bu konuda bilgiye ihtyacı olan çok arkadaşımız var..

iyi çalışmalar..