【问题标题】: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(我也会在一分钟内将其作为答案发布)跨度>

标签: c# preprocessor-directive


【解决方案1】:

正如我在 cmets 中已经指出的,这正是 `#error' 预处理器指令的目的。 MSDN上的描述说:

#error 允许您从代码中的特定位置生成错误。

在 MSDN 上查看此处:https://msdn.microsoft.com/en-us/library/x5hedts0.aspx

因此,在您的情况下,您的指令告诉预处理器在设置 DEBUG 符号时显示错误 DEBUG is defined。

【讨论】:

    猜你喜欢
    • 2019-10-04
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多