Yardım Game Warning Sorunu

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

nebnebsen

Geliştirici
Geliştirici
Üye
Mesaj
454
Çözümler
23
Beğeni
113
Puan
509
Ticaret Puanı
0
Konu başlığına yardım veya help yazmak yasak.
Merhaba,


Game warningleri çözmeye çalışıyorum. Baya bi ilerledim ama çözemediğim birkaç tane kaldı.


Kod:
DragonSoul.cpp:516:18: warning: the compiler can assume that the address of 'aItemPoses' will never be NULL [-Waddress]



DragonSoul.cpp:516:9: warning: 'nonnull' argument 'aItemPoses' compared to NULL [-Wnonnull-compare]


Satır::
    if (NULL == aItemPoses)
    {
        return false;
    }


Yardımcı olur musunuz? Bu warningi nasıl çözebilirim?
 
C++:
    if (!aItemPoses)
        return false;
 
Farklı şekilde çözdüm ama oldumu olmadımı emin olamıyorum.

Kod:
bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_REFINE_GRID_SIZE])
{
    if (NULL == ch)
        return false;

    if (NULL == aItemPoses)
    {
        return false;
    }

Kod blogu şöyle devam ediyor.
Bende şöyle değiştirdim:

Kod:
bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_REFINE_GRID_SIZE])
{
    if(!DSManager::DoRefineGrade(ch, aItemPoses)) //warning fix
    {
        return false;
    }

Başka bir yerde gördüm uyarlamaya çalıştım. Doğru bir kullanım mı?

@Trashy
 
Onun yerine verdiğimi yaz aynı şeye denk geliyor ama gerek yok yani ona null == aItemPoses kod bloğu ile verdiğimi değiştir.
 
Farklı şekilde çözdüm ama oldumu olmadımı emin olamıyorum.

Kod:
bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_REFINE_GRID_SIZE])
{
    if (NULL == ch)
        return false;

    if (NULL == aItemPoses)
    {
        return false;
    }

Kod blogu şöyle devam ediyor.
Bende şöyle değiştirdim:

Kod:
bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_REFINE_GRID_SIZE])
{
    if(!DSManager::DoRefineGrade(ch, aItemPoses)) //warning fix
    {
        return false;
    }

Başka bir yerde gördüm uyarlamaya çalıştım. Doğru bir kullanım mı?

@Trashy
Kodun orijinalinde sadece değişkeni sorguluyor ama senin yaptığında komple fonksiyonu sorgulamış oluyorsun. Yani pek doğru gibi gelmedi bana. @Trashy dediği gibi yapabilirsin.
 
dragonsoul.cpp/h dosyanı iletir misin? ben bi inceliyim.
 
Satırları silmekten kastın kodları mı sildin?
 
satırları sildim. gcc10 da basmıyor o warningi gcc11 de basıyor ilginç :D
Aslında ilginç değil, her derleyici sürümünün çalışma prensibi ve kod okuma kriterleri farklılık gösteriyor. Mesela freebsd 9.2 de 0 warning ile derlenen bir files, üst sürümlere yükseltildiği zaman bir dünya warning verir.

Ayrica böyle durumlarda acele hareket etmemek daha doğru. Çünkü senin bu kodu gelişigüzel kaldırıyor olman nelere sebep olur bilinmez. Ne zaman farkına varılır o da bilinmez. Amacım sadece uyarmak, tercih senin tabi.
 
Kod:
bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_REFINE_GRID_SIZE])
{
    if(!DSManager::DoRefineGrade(ch, aItemPoses)) //warning fix
    {
        return false;
    }

Şu yaptığım doğrumuydu peki?
 
Kod:
bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_REFINE_GRID_SIZE])
{
    if(!DSManager::DoRefineGrade(ch, aItemPoses)) //warning fix
    {
        return false;
    }

Şu yaptığım doğrumuydu peki?
DoRefineGrade aItemPoses değilse false döndür demişsin işe yarar mı fikrim yok doğru olanı sana yazdım o şekildede warning veriyorsa dragonsoul.cpp ve .h dosyalarını gönder bi bakıyım.
 
Son düzenleme:
DoRefineGrade fonksiyonu değilse false döndür demişsin işe yarar mı fikrim yok doğru olanı sana yazdım o şekildede warning veriyorsa dragonsoul.cpp ve .h dosyalarını gönder bi bakıyım.
Mobilim şu an gönderirim pc geçince. Ama şunu söyleyeyim: Hiçbir düzenleme yapmadım. Orjinal mainline dosyası o. Eğer varsa elinde ordan da bakabilirsin.

dorefinegrade fonksiyonu değilse mi
Başka bi konuda siz satırları sil demişsiniz. Bende o şekilde yaptım acaba bir soruna yol açar mı bi fikriniz var mı?
 
Geri
Üst