“NEARDATA”在NetHack源代码中的含义是什么?

时间:2011-11-19 01:23:22

标签: c nethack

NetHack源代码(用C编写)有一些我不理解的东西。

以下代码可以在Nethack 3.4.3源代码中找到:

STATIC_VAR NEARDATA struct engr *head_engr;

(在http://nethackwiki.com/wiki/engrave.c#line9上的engrave.c第9行)

STATIC_PTR int NDECL(doprev_message);

(在http://nethackwiki.com/wiki/cmd.c#line106的cmd.c第106行)

STATIC_DCL char *NDECL(parse);

(cmd.c第157行)

有人可以向我解释一下“NEARDATA”,“STATIC_VAR”,“STATIC_PTR”和“STATIC_DCL”是什么,以及它们的含义是什么?

2 个答案:

答案 0 :(得分:2)

我做了一点检查...... NEARDATAconfig1.h中定义,仅用于AmigaOS平台。在这种情况下,它意味着数据段(存储全局和静态变量)由编译器相对于CPU寄存器引用。

STATIC_*定义似乎也取决于平台。

因此,这是使用预处理器#define构造定义的所有特定于平台的事物,以确保源构建在不同的平台上。

答案 1 :(得分:0)

它们是pre-processor个宏,并在hack.h中定义,它包含在这些文件的顶部。