gpt4 book ai didi

c++ - 没有运行时环境的断言

转载 作者:行者123 更新时间:2023-11-28 06:42:04 25 4
gpt4 key购买 nike

是否可以在没有运行时环境的情况下使用某种形式的断言? static_assert 需要常量表达式,assert 是 C 库的一部分,因此依赖于操作系统调用。但是,假设您没有库函数可以将任何内容打印到屏幕上,并且您没有系统调用来使断言起作用。调试程序的方法是什么?

最佳答案

所有 assert 宏所做的就是调用 abort() 以在其参数计算结果为零时故意使程序崩溃。如果您的平台没有abort 函数,您可以编写一个以合适的方式终止程序的函数。或者,如果您有 abort 但它不合适,您可以编写自己的自定义 assert 宏来执行其他操作。 (假设您的程序有一些产生输出的方式,或者您的问题比如何使 assert 有用更广泛。)

如果您没有系统调用的原因是您正在编写内核(因此您负责实现系统调用),请注意内核等同于断言失败称为 kernel panic .

关于c++ - 没有运行时环境的断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25811147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com