C語言中 error與 line使用分析

2021-08-19 13:31:08 字數 1442 閱讀 8580

--事物的難度遠遠低於對事物的恐懼!

這個篇章我們來聊聊#error 和#line兩個指令。

#error 用於給程式設計師自定義特有的編譯錯誤訊息,用法為:#error message  (注意:message不需要雙引號)

示例: #error this is a error

類似的還有#warning,用於生成乙個編譯警告

下邊來看看#error的具體用法:

-#error是一種預編譯器指示字

-#error可用於提示編譯條件是否滿足

來看看下邊的**:

#include #ifndef __cplusplus

#error this file should be processed with c++ compiler.

#endif

class cppclass

~cppclass()

};int main()

上邊的**,其實是一段c++**,但是編譯環境為c環境,那麼我們編譯結果如下:

從編譯錯誤資訊看,錯誤資訊就是我們**中自定的錯誤資訊,這也就是為什麼說#error給我們提示編譯條件是否滿足,而不至於因為編譯條件不滿足到處找原因。

說完了#error,現在來談談#line:

-#line用於強制制定新的行號和編譯檔名,並對源程式的**重新編號

-用法:#line number filename (filename可省略) 例如:#line 1 file.c

-#line 編譯指示字的本質是重定義__line__和__file__

當多個人同時編寫工程專案時,我們可以使用#line指示字重定義檔名跟行號,以便能準確的尋找出出錯**是誰的、在在**。下邊來看個例子,a.c、b.c、c.c三段**分別有a、b、c三個人編寫,並且對每個人編寫的**都進行了__file__ 與 __line__的重定義:

#include int main()

執行結果如下:

由輸出結果,三段**已經被#line強制指定了新的行號和編譯檔名。

總結:-#error用於自定義一條編譯錯誤資訊

-#warning用於自定義一條編譯警告資訊

-#error和#warning常用於條件編譯的情形

-#line用於強制指定新的行號編譯檔名

C中 error和 line預處理

error用於自定義一條編譯錯誤 warning用於自定義一條編譯警告資訊 error和 warning常用於條件編譯的情形 line用於強制指定新的行號和編譯檔名 error預處理指令的作用是 編譯程式時,只要遇到 error就會生成乙個編譯錯誤提示資訊,並停止編譯。其語法格式為 error er...

c語言中sscanf 與sprintf 的使用

includevoid main void 控制台輸出 192.168.1.78 hget haha infor owner 這麼一看就明白了吧。在字串中 c 庫函式intsscanf const char str,const char format,從字串讀取格式化輸入。c 庫函式int spri...

C語言中typedef union型別的使用方法

使用c語言時,常常使用struct,對於union型別卻幾乎沒有用過,只知道它是聯合型別,各欄位共享一塊記憶體,實際應用中卻不知道它的具體用途。今天讀 程式設計卓越之道 中看到有對其使用的簡單介紹,記錄在此 首先摘錄一下struct和union的重要區別 struct為每個欄位在不同的偏移處分配儲存...