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) doneOh, nhân loại ...
++hoặc--trước đó ...