Рассмотрим код C ++, приведенный ниже:
bool a = 5;
bool b = 6;
int c = (int)a + (int)b;
Когда я компилирую и запускаю этот код, c имеет значение 2. Гарантирует ли стандарт, что в любом компиляторе / платформе значения bool, инициализированные false (0) или true (не обязательно 1), будут равны 1 в операциях и коде выше всегда приведет к 2?
А в C99, включая stdbool.h, это все еще действует?