for (;;) {
//Something to be done repeatedly
}
ฉันเคยเห็นสิ่งต่าง ๆ นี้ใช้บ่อย แต่ฉันคิดว่ามันค่อนข้างแปลก ... มันจะไม่ชัดเจนกว่าที่จะพูดwhile(true)
หรือบางสิ่งบางอย่างตามสายเหล่านั้น?
ฉันเดาว่า (เช่นเดียวกับเหตุผลที่โปรแกรมเมอร์หลายคนหันไปใช้รหัสลับ) นี่เป็นอัตรากำไรขั้นต้นที่น้อยกว่าหรือไม่
ทำไมและมันคุ้มค่าจริงหรือ ถ้าเป็นเช่นนั้นทำไมไม่กำหนดเพียงวิธีนี้:
#define while(true) for(;;)
ดูเพิ่มเติม: อันไหนเร็วกว่าในขณะที่ (1) หรือขณะที่ (2)?
TRUE
C เกี่ยวข้องกับอะไร? มาโครมาตรฐานสำหรับผลลัพธ์บูลีนที่แท้จริงใน 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
???