extern void printBool(bool val); extern void printInt(int val); extern void printFloat(float val); void foo() { bool b1; bool b2; int i; float f; printBool(b1 == b2); // (int)b1 == (int)b2 printBool(b1 != b2); // (int)b1 != (int)b2 printBool(b1 && b2); // b1 ? b2 : false printBool(b1 || b2); // b1 ? true : b2 printBool(b1 + b2); // (bool)((int)b1 + (int)b2) printBool(b1 * b2); // (bool)((int)b1 * (int)b2) printBool((bool)i); // i != 0 printBool((bool)f); // f != 0.0 printInt((int)b1); // b1 ? 1 : 0 printFloat((float)b1); // b1 ? 1.0 : 0.0 }