2011-05-28 28 views
7

Kullanılmayan değişkenlerin neden bozuk olduğunu bilmek istiyorum.Neden kullanılmayan değişkenler bozuk?

Çünkü derleyici daha büyük bir ikili oluşturur? Varsa, unused anahtar kelimesi veya benzeri bir şey ekleyebilecek bir araç/script var mı?

+5

bunu kullanmayın çünkü eğer ben değişkenin bir çok kullanmayan bazı API wich kullanmak çünkü – Ibu

+0

@Ibu Bu soruyu sormak zorunda anlamı yok ve orada sayının etkilendim – klefevre

+0

Neden bunlar iyi? Burada ne yapıyorlar? – EJP

cevap

17

derleyici potansiyel bir sorun ya da kasıtsız olabilir şeylere ipucu size uyarı verir.

Kullanılmayan değişkenler büyük olasılıkla en iyi duruma getirilecektir. Ama belki de onlarla bir şeyler yapmak niyetindesiniz - ve bu durumda derleyici, 'un'un istemediğiniz bir şeyi yapabildiğini belirtmektedir.

Bildirdiğiniz bir değişkendeki kullanım nedir, ne okuma ne yazılır?

+0

Tamam, çok fazla kullanılmayan değişkenin derlemeyi etkileyebileceğini düşündüm. – klefevre

+0

Sembol tablosunda ihtiyaç duyulan daha fazla girdiden dolayı derleme sırasında biraz daha fazla bellek alabilir, ancak bunun dışında bir şey fark etmeyeceksiniz. – Joey

+0

+1 bu kesinlikle en iyi cevaptır. Örneğin, birçok kez 'j' veya 'k' ek dizin değişkeni ekledim, ancak yanlışlıkla bir önceki nesneyi yeniden ekledim ve derleyici uyarısı (genellikle '-Werror' nedeniyle oluşturulmuyor) bile denemeden önce hatayı yakalar. programı çalıştırıyor. –

8

Benim düşünceme göre, kullanılmayan değişkenler kodunuzun okunabilirliğini karmaşık hale getirir. Hangi dili kullanıyor olursanız olun.

+0

Şu anda kaynakları kontrol ederek, bunlardan birçoğunu, aldığım tek uyarı bu, ancak farklı parçalarda yaklaşık 4000 kat. Neden bu kadar çok kullanılmayan değişken olduğunu açıklamıyorum. –

8

hiçbir şey eklemek için soldaki, ama bir şey yokken kaldırmak için sol değilken

mükemmellik ulaşıldığında ... çünkü.

+2

'#include int main() {printf (" Tüm testler geçti \ n "); } '. Gönderiniz; -p –

+1

@Steve: s/printf/koyar/.. 4 karakter ('\ n' gerekli değil) mükemmellik için daha yakın ... –

+0

@William: true, ben genellikle 'koyar' kullanmıyorum, çünkü genel olarak çıktımın bir kısmı biçimlendirmeye ihtiyaç duyuyor ve tutarlı bir şekilde tüm çıktılar için tek bir işlevi kullanıyorum. Bu durumda, bu geçerli değildir, yani 'koyar' a karşı tek argüman bazen açık (linebreak) örtük olmaktan iyidir. Bu konuda, boşlukları da kaldırabilirsiniz, ancak eminim ki; –

İlgili konular