我們都熟悉:計劃中的「包括守衛」的推薦模式?
#ifndef MY_HEADER_FILE_H
#define MY_HEADER_FILE_H
...
#endif
直到最近,我從來沒有擔心加載相同的方案文件兩次(在SICP Scheme解釋的實施改變了...)
有沒有推薦的模式在計劃模仿'包括衛兵'?它可以是可移植的,還是最有可能的實現特定?
我目前使用的scm
落實,我想出了這個至今:
(if (not (defined? my-file-included))
(begin
(define my-file-included #f)
...
)) ; include guard
所以我已經開始粘貼周圍的所有我的文件這種模式,但我不能說我喜歡這個非常。此外,defined?
是scm
中的一個關鍵字,它的參數未被評估:(defined? my-var)
雖然它似乎是一個正常功能,但在guile
:(defined? 'my-var)
和mit-scheme
不會有。
非常感謝你對我很好,我會仔細看看 –