Mr丶张 发表于 2021-10-22 16:12:13

关于宏定义的问题

#define AT_IMAGE(img, x, y)          ((img)->data[(y)*(img)->step+(x)])

typedef struct image{
    uint8_t *data;
    uint32_t width;
    uint32_t height;
    uint32_t step;
} image_t;

image_t img_raw;

AT_IMAGE(&img_raw, x1-1, y1);


请问AT_IMAGE(img, x, y) 这个宏data[(y)*(img)->step+(x)]这部分是什么意思,我有些不理解这样的写法

傻眼貓咪 发表于 2021-10-22 16:25:24

类似于自定义函数,如:#define add(x, y) (x+y)
// add(x, y) 为宏定义,参数:x 和 y,只要下面调用 add 自然需要 2个参数,值是 2个数之和
页: [1]
查看完整版本: 关于宏定义的问题