Picproje Elektronik Sitesi

DERLEYİCİLER => Diğer Derleyiciler => KEIL => Konuyu başlatan: Cemre. - 20 Ekim 2018, 17:45:27

Başlık: "While loop has empty body" uyarısı @Keil uVision v5.25.2.0
Gönderen: Cemre. - 20 Ekim 2018, 17:45:27
Herkese merhaba, iyi hafta sonları :)

Keil'in sinir bozan bir warning'ini deaktif etmek istiyorum, acaba mümkün müdür? Ben ayarlarda bulamadım...

while(hSerialPC.Status != Serial_Ready); gibi bir while loop yazdığımda (korkmayın, normalde böyle while loop'lar kullanmıyorum, sadece test amaçlı) "while loop has empty body" uyarısı veriyor.

Örneğin;
while(hSerialPC.Status != Serial_Ready)
{

}
şeklinde yazarsam uyarı vermiyor, sanki bunun body'si boş değilmiş gibi :)
Başlık: Ynt: "While loop has empty body" uyarısı @Keil uVision v5.25.2.0
Gönderen: foseydon - 20 Ekim 2018, 19:34:54
hocam o warning'lerin bir sebebi var. su asagidaki kitabi bulur okursan veya misra-c standardini okursan, govdesi bos bile olsa if/while vs. gibi yapilarin arkasina block tanimlamanin neden gerekli oldugunu anlarsin. kodun daha guvenilir olur bu sekilde.

https://barrgroup.com/Embedded-Systems/Books/Embedded-C-Coding-Standard
Başlık: Ynt: "While loop has empty body" uyarısı @Keil uVision v5.25.2.0
Gönderen: brandice5 - 20 Ekim 2018, 22:57:37
#pragma ile yapılabiliyor.

http://www.keil.com/forum/22138/disable-compiler-warning/
Başlık: Ynt: "While loop has empty body" uyarısı @Keil uVision v5.25.2.0
Gönderen: bymrz - 21 Ekim 2018, 15:37:26
Hocam süslü parantezi kesinlikle kullanın. İleride kodun üzerinde geliştirmeler yapıldığında çok ciddi hatalar yapma ihtimaliniz çok yüksek...


Örneğin:
if(cart==curt) şunuyap();
dediniz ve ileride siz veya başkası şu şekilde bi ekleme yaptı:

if(cart==curt) şunuyap(); bunudayap();

Bomba patladı :) kodunuz koşul sağlandığında sadece şunu yapacak, ve bunu her koşulda yapacak.


Bir başka örnek :

#define benim_macrom()    şunuyap();bunuyap()
şeklinde bir makro tanımladı birisi... Siz sanıyorsunuz ki benim_macrom(); yazdığınızda her iki fonksiyon da çağırılacak... Ama durun!


if(koşul==doğruysa) benim_macrom();
yaparsanız yandınız...

if(koşul==doğruysa) {benim_macrom();}

yaparsanız yırttınız...
Başlık: Ynt: "While loop has empty body" uyarısı @Keil uVision v5.25.2.0
Gönderen: MrDarK - 22 Ekim 2018, 10:24:24
Ağaç yaşken eğilir deyip alışkanlık yapmanızda fayda var. Anladığım kadarı ile Türkiye'deki yazılımcıların çoğu tek tabanca çalıştığı için yazılım kalitesi uluslar arası standartlar veya kim uğraşacak bunlarla deyip kurallara uymayı düşünmüyor veyahut böyle kuralların varlığından dahi haberi yok.

Cemre; seninle alakalı bir yorum değil üstteki o yüzden lütfen üzerine alınma. Genel bir serzeniş oldu benimkisi :)
Bende dahil bu tarz konulara profesyonel düşünmeye başlayıp, kodda kalite ve sertifikasyon seminerlerine katıldıktan sonra haberim oldu ve iş hayatımda yeni bir pencere açıldı.

Ardından hayatımıza SonarQube, Cpp Check ve Mısra kurallarını dahil ettik ve projelerimize dahil etmeye çalışıyoruz. O yüzden önerim mutlaka bunları alışkanlık haline getirin.

Örneğin bir tanede ben ekleyeyim. Açtığınız if'lerin else durumu söz konusu olmasa bile oluşturun. Mısra kurallarından birisidir :)

if(kosul == true)
{
    islemler();
}
else
{
    /* Herhangi bir işlem yok */
}
Başlık: Ynt: "While loop has empty body" uyarısı @Keil uVision v5.25.2.0
Gönderen: Cemre. - 23 Ekim 2018, 20:01:46
Alıntı yapılan: foseydon - 20 Ekim 2018, 19:34:54hocam o warning'lerin bir sebebi var. su asagidaki kitabi bulur okursan veya misra-c standardini okursan, govdesi bos bile olsa if/while vs. gibi yapilarin arkasina block tanimlamanin neden gerekli oldugunu anlarsin. kodun daha guvenilir olur bu sekilde.

https://barrgroup.com/Embedded-Systems/Books/Embedded-C-Coding-Standard
Teşekkürler. PDF olarak indirmeye izin veriyor, faydalı oldu.
Başlık: Ynt: "While loop has empty body" uyarısı @Keil uVision v5.25.2.0
Gönderen: OptimusPrime - 23 Ekim 2018, 21:45:07
@MrDarK

Hocam sen hic .h dosyasina kod yazan gordun mu? ;D (ben gordum)  ;D Bu arkadaslari sanirim seminer falan kurtarmaz  ;D
Başlık: Ynt: "While loop has empty body" uyarısı @Keil uVision v5.25.2.0
Gönderen: yldzelektronik - 24 Ekim 2018, 01:13:44
Alıntı yapılan: MrDarK - 22 Ekim 2018, 10:24:24...kodda kalite ve sertifikasyon seminerleri...

Bildiğiniz bir kurs  var mı?
Başlık: Ynt: "While loop has empty body" uyarısı @Keil uVision v5.25.2.0
Gönderen: MrDarK - 28 Ekim 2018, 08:26:37
Geçtiğimiz yıl IAR semineri vardı sanırım EMPA nin düzenlediği. Takip etmeniz gerekiyor. Örnekleri uçak yazılım sistemleri üzerineydi. Ayrıca aselsan roketsan vb bircok büyük firma katılım yapmıştı.

OptimusPrime,
Chip üreticisi Silabs in EFM32 serisi chiplerini kullanırken benimde adamların driverlarini kullanırken senin verdiğin tepkiyi vermiştim:) chip üreticisi bile yapmış anlayacağın. Bence doğru bir yaklasim değil ama yapacak bise yok aldık kullandık