“NEARDATA”在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”是什么,以及它们的含义是什么?

解决方法

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

STATIC_ *定义似乎也依赖于平台.

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

相关文章

一.C语言中的static关键字 在C语言中,static可以用来修饰局...
浅谈C/C++中的指针和数组(二) 前面已经讨论了指针...
浅谈C/C++中的指针和数组(一)指针是C/C++...
从两个例子分析C语言的声明 在读《C专家编程》一书的第三章时...
C语言文件操作解析(一)在讨论C语言文件操作之前,先了解一下...
C语言文件操作解析(三) 在前面已经讨论了文件打开操作,下面...