Dopo aver letto funzioni nascoste e angoli bui della C ++ / STL su comp.lang.c++.moderated, ero completamente sorpreso che il seguente frammento compilato e ha lavorato sia in Visual Studio 2008 e G ++ 4.4.
Ecco il codice:
#include <stdio.h>
int main()
{
int x = 10;
while (x --> 0) // x goes to 0
{
printf("%d ", x);
}
}
Produzione:
9 8 7 6 5 4 3 2 1 0
Suppongo che questo sia C, dal momento che funziona anche in GCC. Da dove viene definito questo standard e da dove proviene?
#define upto ++<, #define downto -->. Se ti senti male, puoi fare #define for while(e #define do ) {(e #define done ;}) e scrivere for x downto 0 do printf("%d\n", x) doneOh, l'umanità ...
++o--prima ...