Nach der Lektüre Hidden Features und dunkle Ecken C ++ / STL auf comp.lang.c++.moderated
, ich war völlig überrascht , dass die folgende Snippet erstellt und sowohl in Visual Studio 2008 und G ++ 4.4 gearbeitet.
Hier ist der Code:
#include <stdio.h>
int main()
{
int x = 10;
while (x --> 0) // x goes to 0
{
printf("%d ", x);
}
}
Ausgabe:
9 8 7 6 5 4 3 2 1 0
Ich würde annehmen, dass dies C ist, da es auch in GCC funktioniert. Wo ist dies in der Norm definiert und woher kommt es?
#define upto ++<
, #define downto -->
. Wenn Sie das Gefühl übel, können Sie tun , #define for while(
und #define do ) {
(und #define done ;}
) und schreiben for x downto 0 do printf("%d\n", x) done
Oh, die Menschheit ...
++
oder--
vorher gesehen habe ...