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 - "NEARDATA"在 NetHack 源代码中是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8191137/