--事物的難度遠遠低於對事物的恐懼!
這個篇章我們來聊聊#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為每個欄位在不同的偏移處分配儲存...