2011-11-19 39 views
4

NetHack源代碼(用C編寫)有一些我不明白的東西。「NEARDATA」在NetHack源代碼中的含義是什麼?

下面的代碼可以在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); 

(CMD上的線106在http://nethackwiki.com/wiki/cmd.c#line106 .c)中

STATIC_DCL char *NDECL(parse); 

(上cmd.c的157線)

難道有人請向我解釋一下「NEARDATA」,「STATIC_VAR」,「STATIC_PTR」和「STATIC_DCL」是什麼意思?

+1

看起來像'#define''d東西。你有沒有找到他們的定義? –

回答

2

我做了一些檢查... NEARDATAconfig1.h中定義,僅用於AmigaOS平臺。在這種情況下,它意味着編譯器相對於CPU寄存器引用了數據段(其中存儲了全局變量和靜態變量)。

STATIC_*定義也似乎是平臺相關的。

所以這是所有特定於平臺的東西,使用預處理器#define結構,以確保源建立在不同的平臺定義。

相關問題