0

我最近遇到了一段使用 pragma 指令的代码

#error Error ! Define [_HOS_ | _HOS_OV_ | _HOV_].

此代码来自 ADOC-C 雅可比计算例程。

问题在于,在 C++ Visual Studio 2010 中,下方有一条红色卷线,#error表示该行内存在一些问题。

该代码也无法编译在该行给出错误消息

是否存在语法问题或那些[_HOS_ | _HOS_OV_ | _HOV_]未定义的问题,并且 IntelliSense 知道导致红色卷线表示存在问题?

4

3 回答 3

2

该代码的作者打算在没有定义错误消息中指定的至少一个标签时出错。如果 s.th,您应该查看 ADOC-C 内容的文档。那里提到了这些标签。

于 2012-10-11T16:29:22.127 回答
1

#error指令的目的是创建编译错误。这通常是编写代码的程序员告诉试图编译和使用它的程序员“你做错了什么,这行不通!”的一种方式。指令后面的字符串是应该显示给试图编译代码的程序员的消息。

你应该检查这个指令周围有哪些指令,例如是否有任何#ifdefs 导致它被执行。然后您应该查找它们执行的条件(例如,没有定义错误列表的内容)并寻找一种方法使它们消失。

于 2012-10-11T16:28:54.117 回答
0

问题在于,在 C++ Visual Studio 2010 中,#error 下方有一条红线,表示该行内存在问题。

Visual Studio 2010 不再识别#error 预处理器语法。它只识别#pragma 警告

于 2013-05-08T10:26:52.887 回答