溫馨提示×

c++ assert()函數能自定義嗎

c++
小樊
87
2024-11-26 19:24:26
欄目: 編程語言

是的,C++的assert()函數可以自定義

#include <iostream>
#include <cassert>

// 自定義斷言宏
#define MY_ASSERT(condition) do { \
    if (!(condition)) { \
        std::cerr << "Assertion failed: " << #condition << std::endl; \
        std::abort(); \
    } \
} while (0)

int main() {
    int x = 5;
    int y = 0;

    MY_ASSERT(y != 0); // 如果y為0,程序將輸出錯誤信息并終止

    std::cout << "All tests passed!" << std::endl;

    return 0;
}

在這個例子中,我們定義了一個名為MY_ASSERT的自定義斷言宏。當條件為假時,它會輸出錯誤信息并調用std::abort()來終止程序。在main()函數中,我們使用MY_ASSERT來檢查y是否為0。如果y為0,程序將輸出錯誤信息并終止,否則程序將繼續執行。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女