Sau khi đọc Các tính năng ẩn và Dark Corners của C ++ / STL trên comp.lang.c++.moderated
, tôi đã hoàn toàn ngạc nhiên rằng sau Đoạn biên soạn và làm việc tại cả Visual Studio 2008 và G ++ 4.4.
Đây là mã:
#include <stdio.h>
int main()
{
int x = 10;
while (x --> 0) // x goes to 0
{
printf("%d ", x);
}
}
Đầu ra:
9 8 7 6 5 4 3 2 1 0
Tôi cho rằng đây là C, vì nó cũng hoạt động trong GCC. Điều này được định nghĩa trong tiêu chuẩn và nó đến từ đâu?
#define upto ++<
, #define downto -->
. Nếu bạn cảm thấy xấu xa, bạn có thể làm #define for while(
và #define do ) {
(và #define done ;}
) và viết for x downto 0 do printf("%d\n", x) done
Oh, nhân loại ...
++
hoặc--
trước đó ...