故意在Visual Studio 2008中触发编译错误

时间:2009-10-20 20:23:44

标签: visual-studio visual-studio-2008

在Visual Studio 2008上满足某个条件时,有没有办法故意触发编译错误?

6 个答案:

答案 0 :(得分:9)

您可以使用#error预处理器功能。

你可以这样使用它:

#ifdef WIN32
    ... code for windows
#else
    #error only windows is supported
#endif

答案 1 :(得分:2)

在C ++中,您可以使用以下宏来在指定的常量条件为false时导致编译时断言

#define COMPILE_ASSERT(expr) extern int __assertutil[(expr) != 0]

COMPILE_ASSERT(42 != 8);  // Fine
COMPILE_ASSERT(42 == 8);  // Error

这是有效的,因为在表达式为false的情况下,它的常量值为0. C ++中的数组的常量大小不能为0,这会导致编译错误。

答案 2 :(得分:2)

compiler directive #error?

怎么样?

答案 3 :(得分:0)

有语言特定的预处理器指令。在C#中:

#define DEBUG class MainClass  {
    static void Main() 
    {
#if DEBUG
#error DEBUG is defined
#endif
    } 
}

来自MSDN

答案 4 :(得分:0)

int i =(float)(5.0);

答案 5 :(得分:0)

我想知道你是否正在寻找一种在编译之前验证源代码的方法。如果是这样,您可以使用预构建步骤并使其失败(使用0以外的代码退出)以中止编译。