什么是C语言中的 "IsA() "函数?

问题描述 投票:0回答:1

在纯C代码中,在不同的项目中,我涉及Postgresql服务器编程 我现在正在使用的 "IsA() "函数,一直遇到 "IsA() "这个函数,它返回一个布尔值,检查一个结构的2个实例是否属于同一个结构。我想是这样的。

其中的一个。

https:/github.comguotao0628pipelinedbblobmastersrcbackendexecutornodeBitmapAnd.c#L123。

    for (i = 0; i < nplans; i++)
    {
        PlanState  *subnode = bitmapplans[i];
        TIDBitmap  *subresult;

        subresult = (TIDBitmap *) MultiExecProcNode(subnode);

        if (!subresult || !IsA(subresult, TIDBitmap))               /*what's IsA(...) ? */
            elog(ERROR, "unrecognized result from subplan");

        if (result == NULL)
            result = subresult; /* first subplan */

我需要将一些C代码移植到其他严格类型的语言中。因此,我需要知道 "isA() "是如何在引擎盖下实现的。但是我没有在任何地方找到它。据说它被定义在某个库中。

我在哪里可以找到它的定义?

c postgresql
1个回答
2
投票

IsA 是一个宏,它定义在 这个 头文件 Postgresql 源代码。

© www.soinside.com 2019 - 2024. All rights reserved.