【发布时间】:2021-09-03 07:24:45
【问题描述】:
我在Perl的源代码中找到了如下宏:
#define GvGP(gv) (0+(gv)->sv_u.svu_gp)
其中sv_u.svu_gp 在联合sv_u 中声明为GP* svu_gp。
我找不到GP 的任何定义。但是,我对 0 加上指针的含义更加困惑。谁能给我指点一下?
【问题讨论】:
-
arco in the source code of Perl具体在哪里?请张贴链接。 -
也许可以检查
svn_gp是否不是void*。或者检查它是否是一种算术类型,最终使其成为一个左值,因此不可赋值 -
仅供参考,
GP在perl.h中定义为typedef struct gp GP,struct gp在gv.h中定义。 -
添加了 perl 标签,以防对 perl 内部非常熟悉的人看到它并解释其中的原理。
-
@TedLyngmo,一元
+不适用于指针