Warning Tips - GNU Emacs Lisp Reference Manual中的第一个提示:
尝试通过为这些变量添加虚拟defvar定义来避免编译器有关未定义自由变量的警告,如下所示: (defvar foo) 除了告诉编译器不要在此文件中警告变量foo的使用外,这样的定义没有任何效果。
什么情况下有人想要没有效果,但又想要禁用有关自由变量的警告?每当我收到关于未定义的自由变量的警告时,我总是忘记放置(defvar foo initvalue docstring)
或者拼错了本地变量名。
答案 0 :(得分:3)
您的问题是为何/何时禁止此类警告。答案是:在以下任何一种情况下:
变量在别处定义,你知道定义它的库将在代码实际尝试使用变量之前加载。
你想声明变量是一个“特殊”变量,也就是说,它是动态绑定的,而不是词法上的。