visual studio microsoft español descargar community c++ or-operator

studio - o no es válido C++: ¿por qué se compila este código?



visual studio installer (3)

Según Wikipedia :

C ++ define palabras clave que actúan como alias para una serie de símbolos que funcionan como operadores: y (&&), bitand (&), y_eq (& =), o (||), bitor (|), or_eq (| =), xor (^), xor_eq (^ =), no (!), not_eq (! =), compl (~).

Como señala MadKeithV , estos reemplazos provinieron de C iso646.h, y se incluyeron en ISO C ++ como palabras clave de operador. El artículo de Wikipedia para iso646.h dice que la razón de estas palabras clave fue, de hecho, para los teclados internacionales y otros no QWERTY que podrían no haber tenido acceso fácil a los símbolos.

Aquí hay una aplicación de C ++ muy simple que hice con QtCreator:

int main(int argc, char *argv[]) { int a = 1; int b = 2; if (a < 1 or b > 3) { return 1; } return 0; }

Para mí, esto no es válido en C ++, como la palabra clave o no es una palabra clave reservada.

¡Pero si lo compilo y ejecuto, funciona bien sin ninguna advertencia! El código de salida es 0 y si cambio b = 4, ¡el código de salida es 1!

No estoy incluyendo nada para asegurarme de que no haya una definición oculta.

Esto es realmente extraño para mí. ¿Es esto algo que Qt está definiendo? No encontré nada en la documentación al respecto.


iso646.h define una serie de alternativas de operador, es parte del estándar C ++.


or es una palabra clave de C ++, y puede usarla en lugar de || . No hay magia.

Lo mismo vale para and y la mayoría de los otros operadores lógicos. Sin embargo, generalmente es mejor atenerse a los nombres comúnmente conocidos, para evitar confusiones como esta. Si usa or , alguien se preguntará "¿por qué compila esto?"