C 庫 - assert() 宏



C 的assert庫的assert()宏用於錯誤處理,以檢查程式執行時做出的任何假設是否正確。它用於在開發階段本身捕獲程式中的邏輯錯誤。

語法

以下是assert()宏的 C 庫語法 -

void assert(int expression);

引數

此宏接受一個引數 -

  • 表示式 - 它是一個條件語句,其結果為真或假。如果表示式的結果為假 (0),則 assert() 函式會觸發斷言失敗,導致程式終止。

返回值

此宏不返回值。如果斷言失敗(表示式結果為假),它會觸發錯誤訊息並中止程式執行。

示例 1:檢查簡單表示式

在此示例中,assert() 檢查變數 x 是否等於 5。如果條件為真,則程式成功執行並列印“斷言透過!”。如果它不為真,則程式將中止並列印診斷訊息。

#include <stdio.h>
#include <assert.h>

int main() {
   int x = 5;
   assert(x == 5);
   printf("Assertion passed!\n");
   return 0;
}

輸出

以上程式碼產生以下結果 -

Assertion passed!

示例 2:檢查邏輯表示式

在此示例中,assert() 檢查變數 a 和 b 的和是否大於 5。由於總和等於 8,大於 5,因此條件為真。但是,如果條件結果為假,則會顯示錯誤訊息。

#include <stdio.h>
#include <assert.h>
int main() {
   int a = 5, b = 3;
   assert((a + b) > 5 && "Sum is not greater than 5");
   printf("Assertion passed!\n");
   return 0;
}

輸出

以上程式碼產生以下結果 -

Assertion passed!
廣告

© . All rights reserved.