Setelah membaca Fitur Tersembunyi dan Sudut Gelap C ++ / STL aktif comp.lang.c++.moderated
, saya benar-benar terkejut bahwa cuplikan berikut dikompilasi dan bekerja di Visual Studio 2008 dan G ++ 4.4.
Berikut kodenya:
#include <stdio.h>
int main()
{
int x = 10;
while (x --> 0) // x goes to 0
{
printf("%d ", x);
}
}
Keluaran:
9 8 7 6 5 4 3 2 1 0
Saya berasumsi ini C, karena berfungsi di GCC juga. Di mana ini didefinisikan dalam standar, dan dari mana asalnya?
#define upto ++<
, #define downto -->
. Jika Anda merasa jahat, Anda dapat melakukan #define for while(
dan #define do ) {
(dan #define done ;}
) dan menulis for x downto 0 do printf("%d\n", x) done
Oh, kemanusiaan ...
++
atau--
sebelum ...