เราส่งผ่านอาร์กิวเมนต์ที่แตกต่างกันไปยังฟังก์ชันบางอย่าง ตอนนี้คำถามหนึ่งอาจเข้ามาในหัวของเราว่าลำดับของการประเมินพารามิเตอร์ฟังก์ชันเป็นอย่างไร มันซ้ายไปขวาหรือขวาไปซ้าย?
ในการตรวจสอบลำดับการประเมิน เราจะใช้โปรแกรมอย่างง่าย พารามิเตอร์บางตัวกำลังส่งผ่าน จากผลลัพธ์ เราจะพบว่ามีการประเมินอย่างไร
โค้ดตัวอย่าง
#include<stdio.h>
void test_function(int x, int y, int z) {
printf("The value of x: %d\n", x);
printf("The value of y: %d\n", y);
printf("The value of z: %d\n", z);
}
main() {
int a = 10;
test_function(a++, a++, a++);
} ผลลัพธ์
The value of x: 12 The value of y: 11 The value of z: 10
จากผลลัพธ์นี้ เราจะสามารถเข้าใจลำดับการประเมินได้อย่างง่ายดาย ตอนแรก z ถูกถ่าย ดังนั้นจึงถือ 10 จากนั้น y ถูกถ่าย ดังนั้นมันคือ 11 และสุดท้าย x ถูกนำมา ค่าที่ได้คือ 12