for (;;) {
//Something to be done repeatedly
}
ฉันเคยเห็นสิ่งต่าง ๆ นี้ใช้บ่อย แต่ฉันคิดว่ามันค่อนข้างแปลก ... มันจะไม่ชัดเจนกว่าที่จะพูดwhile(true)หรือบางสิ่งบางอย่างตามสายเหล่านั้น?
ฉันเดาว่า (เช่นเดียวกับเหตุผลที่โปรแกรมเมอร์หลายคนหันไปใช้รหัสลับ) นี่เป็นอัตรากำไรขั้นต้นที่น้อยกว่าหรือไม่
ทำไมและมันคุ้มค่าจริงหรือ ถ้าเป็นเช่นนั้นทำไมไม่กำหนดเพียงวิธีนี้:
#define while(true) for(;;)
ดูเพิ่มเติม: อันไหนเร็วกว่าในขณะที่ (1) หรือขณะที่ (2)?
TRUEC เกี่ยวข้องกับอะไร? มาโครมาตรฐานสำหรับผลลัพธ์บูลีนที่แท้จริงใน C99 ยังคงtrueอยู่ ในกรณีที่การไม่TRUEมาจากไหน?
#define while(TRUE)ประกาศมาโครที่รับอาร์กิวเมนต์หนึ่งTRUEที่ไม่เคยใช้มาก่อนดังนั้นให้เปลี่ยนทุก ๆ ขณะที่วนรอบในโปรแกรมของคุณเป็นวงวนไม่สิ้นสุด?
TRUEมาจากไฟล์ส่วนหัวที่เชื่อมโยงกับ Windows API ไม่เกี่ยวข้องกับ VS 6.0 แต่อย่างใด และอย่างที่ฉันพูดไปก่อนหน้านี้มันไม่มีส่วนเกี่ยวข้องกับ C หรือ C ++ ใน C ++ อักษร "จริง" เป็นเพียงtrue(ใน VS 6.0 เช่นกัน) ใน C89 / 90 ไม่มีสิ่งดังกล่าวที่ทั้งหมดและใน C99 trueมันเป็นแมโคร สิ่งนี้ใช้กับคอมไพเลอร์ C / C ++ ทั้งหมด
TRUE???