Çözüldü cmd_general.cpp Warning

  • Konuyu açan Konuyu açan Kaiser
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 6
  • Gösterim Gösterim 1K
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Kaiser

Admin
Admin
Geliştirici
Yardımsever Üye
Mesaj
3.970
Çözümler
384
Beğeni
4.037
Puan
1.849
Ticaret Puanı
0
Adsız.jpg


Warning'in geldiği kısım ise;

sss.jpg


Kırmızı işaretli yerden veriyor warningi. Ancak üstte col tanımlı. Neden böyle bir uyarı veriyor anlamış değilim. Bir fikri olan var mı?
Belki makrolardan kaynaklıdır diye makroyu kapatıp denedim ama değişen bir şey olmadı.
 
Çözüm
Aynı değişkeni, aralarında bir sıra noktası olmadan iki kez atıyorsunuz, "row[col++]" bu nedenle uyarı veriyor.

C++:
Genişlet Daralt Kopyala
sprintf(attrs, "%s%s,%s%s", attrs, row[col++], row[col++], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));

Not: İçlerinden bir tanesinin değerini belirtmelisin.

C++:
Genişlet Daralt Kopyala
sprintf(attrs, "%s%s,%s%s", attrs, row[col = col + 1], row[col++], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));
C++:
Genişlet Daralt Kopyala
sprintf(attrs, "%s%s,%s%s", attrs, row[col++], row[col = col + 1], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));

Yada;

C++:
Genişlet Daralt Kopyala
int xcol = col;
sprintf(attrs, "%s%s,%s%s", attrs, row[col++], row[xcol++], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));

Olarak kullanmayı deneyebilirsin.
Aynı değişkeni, aralarında bir sıra noktası olmadan iki kez atıyorsunuz, "row[col++]" bu nedenle uyarı veriyor.

C++:
Genişlet Daralt Kopyala
sprintf(attrs, "%s%s,%s%s", attrs, row[col++], row[col++], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));

Not: İçlerinden bir tanesinin değerini belirtmelisin.

C++:
Genişlet Daralt Kopyala
sprintf(attrs, "%s%s,%s%s", attrs, row[col = col + 1], row[col++], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));
C++:
Genişlet Daralt Kopyala
sprintf(attrs, "%s%s,%s%s", attrs, row[col++], row[col = col + 1], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));

Yada;

C++:
Genişlet Daralt Kopyala
int xcol = col;
sprintf(attrs, "%s%s,%s%s", attrs, row[col++], row[xcol++], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));

Olarak kullanmayı deneyebilirsin.
 
Son düzenleme:
Çözüm
Aynı değişkeni, aralarında bir sıra noktası olmadan iki kez atıyorsunuz, "row[col++]" bu nedenle uyarı veriyor.

C++:
Genişlet Daralt Kopyala
sprintf(attrs, "%s%s,%s%s", attrs, row[col++], row[col++], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));

Not: İçlerinden bir tanesinin değerini belirtmelisin.

C++:
Genişlet Daralt Kopyala
sprintf(attrs, "%s%s,%s%s", attrs, row[col = col + 1], row[col++], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));
C++:
Genişlet Daralt Kopyala
sprintf(attrs, "%s%s,%s%s", attrs, row[col++], row[col = col + 1], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));

Yada;

C++:
Genişlet Daralt Kopyala
int xcol = col;
sprintf(attrs, "%s%s,%s%s", attrs, row[col++], row[xcol++], (i<ITEM_ATTRIBUTE_MAX_NUM-1 ? "|" : ""));

Olarak kullanmayı deneyebilirsin.
Bahsettiğin şekilde yapınca warning çözüldü teşekkür ederim. Fakat işlevselde herhangi bir sorun yaratır mı ? Bundan emin olamadım.
 
xcol olarak ekstradan bir tanımlama yaptım.

Kodların devamında 'col' kullanımına devam ediliyorsa sıkıntı çıkabilir. Yalnız o gösterdiğin yerde son buluyorsa bir sıkıntı çıkmayacaktır. 'col' eğer ki altta ki yerlerde de kullanılıyorsa diğer önerdiklerimi kullanmanı öneririm yada altta boş yere tekrar bir eşitleme yapmak durumunda kalabilirsin.
 
Kodların devamında 'col' kullanımına devam ediliyorsa sıkıntı çıkabilir. Yalnız o gösterdiğin yerde son buluyorsa bir sıkıntı çıkmayacaktır. 'col' eğer ki altta ki yerlerde de kullanılıyorsa diğer önerdiklerimi kullanmanı öneririm yada altta boş yere tekrar bir eşitleme yapmak durumunda kalabilirsin.
Yok zaten warningi veren satırın altında 2-3 satır kod var ve sonrasında fonksiyon bitiyor. Şimdilik böyle kalsın bakalım, eğer olur da bir sorun çıkarsa tekrar konuyu güncellerim. Teşekkürler tekrardan.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst