温馨提示×

c++ assert()函数能自定义吗

c++
小樊
81
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