assert exit和return函式的介紹

2022-09-11 18:24:11 字數 978 閱讀 4002

1

void assert(scalar expression);//

診斷

定義在標頭檔案中。它使程式可以監控自己的行為,並盡早發現可能會產生的錯誤。

assert有乙個引數,這個引數必須是一種「斷言」--乙個我們認為正常情況下一定為真的表示式。每次執行assert函式,它都會檢測其引數的值。如果引數的值不為0,assert什麼也不做;如果引數的值為0,assert會向stderr(標準錯誤流,)寫一條訊息,並呼叫abort函式終止程式執行。

例如:assert(0 <= i && i < 10); 如果i的值小於0或者大於等於10,程式在顯出類似下面的訊息後會終止:

assertion failed: 0 <= i && i < 10, file demo.c line 109

assert函式有乙個缺點:因為它引入額外的檢查,因此會增加程式的執行時間。(尤其在實時程式中,這麼小的執行時間增加的可能也是無法接受的)。因此,許多程式設計師會在測試過程中使用assert,但當程式最終完成時就會禁止assert函式。禁止assert很容易,只需要在包含之前定義:ndebug即可:

1

#define ndbug

2 #include

注意:不要在assert中使用有***的表示式(包括函式的呼叫)。一旦後來某天禁止了assert,這些表示式將不再會被求值。

2

void exit(int

status);

exit:終止呼叫程序。

如果status是0/ exit_success,表示正常退出;如果status是exit_failure/非0值,表示異常退出。這個status是返回給作業系統(包括unix,linux,和ms dos)的,以供其他程式使用。

3

return ***;

return 表示從被調函式返回到主調函式繼續執行。

Scala scala中不建議使用return

在scala中使用return的話,編譯的時候會提示 the latest statement is method is automatically returned,use of th return keyword is redundant.這個警告是說最後乙個語句的結果會自動返回,使用retur...

php介面返回資料 用echo 還是return

今天在ci框架中用 return 返回 josn encode資料 給前台ajax 前台獲取始終為空。原生php return也為空 改為echo後就可以獲取到。本人之前用tp的時候一直用return就能獲取到。最終看了別人的一些ci 這種情況也是用的echo return 作為函式返回值或結束語句...

和 區別和聯絡, 和 區別和聯絡

和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...