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) doneOh, die Menschheit ...
++oder--vorher gesehen habe ...