Bool türleri Int türlerinden daha küçüktür, bu nedenle bellekte daha az yer kullanır. Bir / Bo için derlediğiniz sisteme bağlı olarak, bir Int 4 - 8 bayt olabilir, oysa bir Bool 1 bayttır ( bu MSDN makalesinde görüldüğü gibi )
Bunu KISS ve iyi program tasarımının bazı yönleriyle birleştirin ve neden sadece 2 değere sahip olacak bir değişkeni saklamak için bir bool kullanmanın daha iyi olduğu ortaya çıkıyor.
Neden yalnızca iki farklı değerden yalnızca birini saklamanız gerektiğinden emin olduğunuzda, geniş bir değer aralığını depolayabilen bir nesneyle işleri neden zorlaştırıyorsunuz?
İçinde 75 saklarsanız, int kullanan sistemde ne olur? Ekstra koşul eklediyseniz
if (value >= 0 )
return true; //value is greater than 0, thus is true
else
return false; //value is 0 or smaller than 0, thus is false
veya
if (value == 0)
return false; //value is greater than 0, thus is true
else if (value == 1)
return true; //value is 0 or smaller than 0, thus is false
o zaman bu durum için kapandın. Ama eğer yapmadıysan, o zaman olmazsın.
Ayrıca, arabellek taşması olan (int değerini nasıl değiştirdiğinize bağlı olarak) ve "0 değerine" sıfırlar veya int'inizin alt sınırını (yani içinde bir yerde olabilir) olan bir durum olabilir -127 ila ,9,223,372,036,854,775,808 bölgesi, hedef mimarinize bağlı olarak ) kodunuzda ne olacak?
Ancak, bir bool kullanıyorsanız, şunun gibi bir şey kullanabilirsiniz:
if(continueBool == true)
return true;
else
return false;
Ya da:
return (continueBool== true) ? true : false;
ya da:
return continueBool;
Derleyicinize bağlı olarak, eşlenen doğru / yanlış değerleri depolamak için Bools kullanan kodda gerçekleştirebileceği optimizasyonlar olabilir. Oysa, eşlenen doğru / yanlış değerleri depolamak için kullanılan Int'ler için gerçekleştirebileceği optimizasyonlar olmayabilir.
Ayrıca C ++ 'ın (C, Assembly ve FORTRAN ile birlikte) yüksek verimli, küçük ve hızlı kod yazmak için kullanıldığını hatırlamamız gerekir. Bu nedenle, bu durumda bir Bool kullanmak daha iyi olacaktır - özellikle değişkenleri, belleği, önbelleği veya işlemci zamanını kullanımınız üzerinde işaretlenmişseniz.
Benzer bir soru şudur: neden bir tamsayıyı (değer) bir kayan noktada saklayayım? Cevap: Yapmamalısın, çünkü anlamı yok.
Uzun lafın kısası: Öğretmeniniz / öğretmen / öğretmen / öğretim görevlisi / profesörünüz sizinle birlikte farklı değer türlerinin boyutlarını aşarken (kaçırmış olmanız durumunda) ve Yazılım Geliştirmede neden önemli oldukları hakkında.
İnşallah bir başlangıç noktası olarak yardımcı olur (İnşallah serserilerle karşılaşmamasını da umarım)
int
bir tamsayı saklamak ve a'nın amacıbool
bir boolean değeri (true
veyafalse
) depolamak . Birbool
IMO kullanmak, kullanımını bir kullanmaktan çok daha iyi yansıtırint
.