2012-10-11 55 views
0

我最近遇到的一段代碼,它使用 的編譯指令C++編譯#ERROR給了一個錯誤

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

此代碼是從ADOC-C的雅可比計算例程來了。

問題是在C++ visual studio 2010中,在#error下面有一條捲曲的紅線,表示該行內存在某些問題。

的代碼也無法編譯在該行

給出的錯誤信息是否有語法問題,或者是在這一點上沒有定義那些[_HOS_ | _HOS_OV_ | _HOV_],和智能都知道,導致捲曲紅線表明一些問題呢?

回答

1

#error指令的意圖是創建編譯錯誤。這通常是編寫代碼的程序員告訴程序員試圖編譯和使用它的一種方式「你做錯了,這是行不通的!」。指令後面的字符串是應該向試圖編譯代碼的程序員顯示的消息。

你應該檢查一下這個指令是什麼,例如是否有任何#ifdef s導致它被執行。然後,你應該查找它們執行的條件(例如,沒有定義錯誤列表中的內容)並尋找一種方法使它們消失。

2

該代碼的作者在未定義至少一個在錯誤消息中指定的標記時意圖產生錯誤。如果是s.th,你應該看看ADOC-C的文檔。在那裏提到這些標籤。

0

問題是,在C++ visual studio 2010中,在#error下面有一條捲曲的紅線,表示該行內存在一些問題。

Visual Studio 2010不再識別#error預處理器語法。它只識別#pragma警告