Please note that this is not a question on C++, but on plain C

在Rust中有一个方便的宏unimplemented!(),可以让运行时崩溃,在函数未实现时使用.

我基本上已经在我的C代码中使用assert (false)来模拟它.这不适用于发布版本.

相对于exit(-1),我更喜欢assert(false),因为我在调试器中找到了正确的位置.

我找到了Function not implemented macro?,它看起来不错,但crash宏没有定义,至少在我的Cang-GCC设置中是这样.

推荐答案

这就是abort()函数的用途:

参考文献:https://en.cppreference.com/w/c/program/abort

但是,任何有意取消引用空指针的操作都可能做同样的事情,例如++*(char *)0.

C++相关问答推荐

如何避免重新分配指针数组时,我们从一开始就不知道确切的大小

括号中的堆栈实现错误问题

DPDK-DumpCap不捕获端口上的传入数据包

字符是否必须转换为无符号字符,然后才能与getc家族的返回值进行比较?

如何将常量char*复制到char数组

Char变量如何在不使用方括号或花括号的情况下存储字符串,以及它如何迭代到下一个字符?

如何将字符**传递给需要常量字符指针的常量数组的函数

在Rust和C之间使用ffi时如何通过 struct 中的[U8;1]成员传递指针

如何在下面的C代码中正确管理内存?

S的这种管道实施有什么问题吗?

在另一个函数中使用realloc和指针指向指针

为什么双精度d=flt_max+flt_max;在c语言中得到inf的结果

ifdef __cplusplus中的整数文字单引号

Zlib:解压缩大文件导致";无效代码长度设置";错误

将数字的每一位数平方,并使用C将它们连接为一个数字(程序不能正确处理0)

*S=0;正在优化中.可能是GCC 13号虫?或者是一些不明确的行为?

当读取可能会阻塞管道中的父进程时,为什么要等待子进程?

使用 _Atomic float 时,MSVC 编译的代码会命中调试断言

如何为avr atmega32微控制器构建C代码,通过光电二极管捕获光强度并通过串行通信传输数据

比 * 更快的乘法