Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Thứ tự đánh giá tham số hàm trong C

Truyền các đối số vào hàm. Thứ tự đánh giá tham số là trái sang phải hay phải sang trái?

Kiểm tra bằng chương trình đơn giản:

Ví dụ

#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);
}

int main() {
    int a = 10;
    test_function(a++, a++, a++);
    return 0;
}

Kết quả

The value of x: 12
The value of y: 11
The value of z: 10

Từ output: z lấy trước (10), rồi y (11), cuối x (12). Thứ tự đánh giá là phải sang trái (right-to-left) trên kiến trúc này. Lưu ý: thứ tự này không được chuẩn C quy định, phụ thuộc compiler/architecture.