หลังจากที่ได้อ่านคุณลักษณะที่ซ่อนอยู่และมุมมืดของ C ++ / STLบนcomp.lang.c++.moderatedฉันรู้สึกประหลาดใจอย่างสมบูรณ์ที่ต่อไปนี้ข้อมูลที่รวบรวมและทำงานทั้งใน Visual Studio 2008 และ G ++ 4.4
นี่คือรหัส:
#include <stdio.h>
int main()
{
int x = 10;
while (x --> 0) // x goes to 0
{
printf("%d ", x);
}
}
เอาท์พุท:
9 8 7 6 5 4 3 2 1 0
ฉันคิดว่านี่คือ C เพราะมันใช้ได้ใน GCC เช่นกัน สิ่งนี้นิยามไว้ที่ไหนในมาตรฐานและมาจากที่ไหน
#define upto ++<ลองจินตนาการถึงความเป็นไปได้ไวยากรณ์ใหม่ #define downto -->, หากคุณรู้สึกชั่วร้ายคุณสามารถทำ#define for while(และ#define do ) {(และ#define done ;}) และเขียนfor x downto 0 do printf("%d\n", x) doneโอ้มนุษย์ ...
++หรือ--ก่อน ...