Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ลำดับการ Evaluate พารามิเตอร์ฟังก์ชันใน C

ลำดับการ Evaluate Function Arguments ใน C เป็น Unspecified Behavior (ขึ้นกับ Compiler) แต่ส่วนใหญ่ทำ Right-to-Left

ตัวอย่างทดสอบ

void test(int x, int y, int z) {
    printf("x=%d y=%d z=%d\n", x, y, z);
}

int main() {
    int a = 10;
    test(a++, a++, a++);
}

ผลลัพธ์ทั่วไป (Right-to-Left)

x=12 y=11 z=10

z ได้ 10 (Evaluate ก่อน) y ได้ 11 x ได้ 12 (Evaluate ท้ายสุด)

หมายเหตุ: ไม่ควรเขียนโค้ดที่พึ่งพาลำดับการ Evaluate Arguments