เราส่งผ่านอาร์กิวเมนต์ที่แตกต่างกันไปยังฟังก์ชันบางอย่าง ตอนนี้คำถามหนึ่งอาจเข้ามาในหัวของเราว่าลำดับของการประเมินพารามิเตอร์ฟังก์ชันเป็นอย่างไร มันซ้ายไปขวาหรือขวาไปซ้าย?
ในการตรวจสอบลำดับการประเมิน เราจะใช้โปรแกรมอย่างง่าย พารามิเตอร์บางตัวกำลังส่งผ่าน จากผลลัพธ์ เราจะพบว่ามีการประเมินอย่างไร
โค้ดตัวอย่าง
#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