找不到pixman_region32_init代码实现的原因

我们在pixman直接查找pixman_region32_init实现会找不到,原因在于PREFIX宏
1、在pixman-region32.c和pixman-region16.c有很大关系,以pixman-region32.c为例
#ifdef HAVE_CONFIG_H
#include <pixman-config.h>
#endif
#include "pixman-private.h"
#include <stdlib.h>

typedef pixman_box32_t        box_type_t;
typedef pixman_region32_data_t    region_data_type_t;
typedef pixman_region32_t    region_type_t;
typedef int64_t                 overflow_int_t;

typedef struct {
    int x, y;
} point_type_t;

#define PREFIX(x) pixman_region32##x

#define PIXMAN_REGION_MAX INT32_MAX
#define PIXMAN_REGION_MIN INT32_MIN

#include "pixman-region.c"
原因就在于: PREFIX(x)宏的展开
2、pixman_region32_init的真正实现函数就在这里
PIXMAN_EXPORT void
PREFIX (_init) (region_type_t *region)
{
    region->extents = *pixman_region_empty_box;
    region->data = pixman_region_empty_data;
}

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值