Charles Bailey'nin cevabı doğru. C ++ standardının tam ifadesi (§4.7 / 4): "Kaynak türü bool ise, false değeri sıfıra ve true değeri bire dönüştürülür."
Düzenleme: Referansı da eklediğini görüyorum - eğer dikkatim dağılmaz ve unutmazsam kısa bir süre sonra bunu sileceğim ...
Edit2: Daha sonra, Boolean değerlerinin kendileri her zaman sıfıra veya bire dönüşürken, bir dizi işlevin (özellikle C standart kitaplığından) "temelde Boole" olan, ancak int
s olarak gösterilen değerleri döndürdüğünü muhtemelen belirtmek gerekir. normalde yalnızca yanlış veya doğru belirtmek için sıfır olmadığını belirtmek için sıfır olması gerekir. Örneğin, is * işlevleri <ctype.h>
yalnızca sıfır veya sıfırdan farklı olmayı gerektirir, mutlaka sıfır veya bir değildir.
Bunu çevirirseniz bool
, sıfır yanlışa ve sıfır olmayan doğruya (beklediğiniz gibi) dönüşür.