预处理器指令#error: 'DEBUG 已定义'
Posted
技术标签:
【中文标题】预处理器指令#error: \'DEBUG 已定义\'【英文标题】:Preprocessor directive #error: 'DEBUG is defined'预处理器指令#error: 'DEBUG 已定义' 【发布时间】:2016-07-07 10:52:39 【问题描述】:我在文件中的第一行是:
#define DEBUG
在我的程序中,我将此变量用作:
#region Preprocessor directives
#if DEBUG
#error DEBUG is defined
#endif
#endregion
编译时出现此错误:#error: 'DEBUG is defined'。
我是不是搞错了什么?
【问题讨论】:
这正是你定义的......你的预处理器指令基本上可以被解读为“当设置调试时显示错误'调试已定义'”。所以这表现得像它应该的那样(即显示错误)。你想做什么,具体的问题是什么? 好的。我误解了#error 指令的用法。我认为它用于在运行时引发定义的错误。但现在正如我从您上面的评论中所暗示的那样:#error 指令用于引发编译时错误。对吗? 是的,正如您在下面的 MSDN 链接中看到的那样,它旨在让您generate an error from a specific location in your code
:https://msdn.microsoft.com/en-us/library/x5hedts0.aspx(我也会在一分钟内将其作为答案发布)跨度>
【参考方案1】:
正如我在 cmets 中已经指出的,这正是 `#error' 预处理器指令的目的。 MSDN上的描述说:
#error
允许您从代码中的特定位置生成错误。
在 MSDN 上查看此处:https://msdn.microsoft.com/en-us/library/x5hedts0.aspx
因此,在您的情况下,您的指令告诉预处理器在设置 DEBUG
符号时显示错误 DEBUG is defined
。
【讨论】:
以上是关于预处理器指令#error: 'DEBUG 已定义'的主要内容,如果未能解决你的问题,请参考以下文章