Define này dùng để làm gì

Ai giải thích hộ mình chỗ define này với

image

Trình biên dịch sẽ thay thế chỗ nào gọi đến rep(i, a, b) bằng vòng lặp for phía sau, như cách #define được thực hiện thôi. Các tham số sẽ được thay thế một cách chính xác từ giá trị truyền vào.

#include <stdio.h>
#define f(i, a, b) for(int i = (a); i < (b); i++)
int main()
{
    int x;
    f(x, 0, 4){
        printf("%d ", x);
    }
    return 0;
}

Sẽ tương đương với:

#include <stdio.h>
// #define f(i, a, b) for(int i = (a); i < (b); i++)
int main()
{
    int x;
    for(x = (0); x < (4); x++){
        printf("%d ", x);
    }
    return 0;
}

Chạy thử:

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?